我如何从Observable 到BleHandler.BlePeripheral?

问题描述 投票:1回答:1

我有一个variable,在使用Observable<BleHandler.BlePeripheral>上的flatMap后得到类型为array

let scannedPeripheral: Observable<BleHandler.BlePeripheral> = instance.bleScan()
            .flatMap{ Observable.from($0)}

但是现在我需要在使用variable的另一个function中使用该BleHandler.BlePeripheral

instance.bleEstablishConnection(scannedPeripheral: scannedPeripheral)

显然,它不起作用。有没有办法让我的Observable<BleHandler.BlePeripheral>变为BleHandler.BlePeripheral

ios swift rx-swift rxbluetooth
1个回答
0
投票

取决于函数是否返回值以及它返回哪种类型的值...

如果函数无效,而您只是出于副作用而调用它:

let disposable = scannedPeripheral
    .subscribe(onNext: { instance.bleEstablishConnection(scannedPeripheral: $0) })

如果您的函数有副作用并返回一个Observable,则:

let returnValue = scannedPeripheral
    .flatMap { instance.bleEstablishConnection(scannedPeripheral: $0) }

如果该函数没有副作用,而您只是在调用它以将您的值转换为其他值,则:

let returnValue = scannedPeripheral
    .map { instance.bleEstablishConnection(scannedPeripheral: $0) }

根据函数的名称,这最后一个不太可能,但是为了完整起见,在此将其放在此处。

© www.soinside.com 2019 - 2024. All rights reserved.