我有一个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
最佳答案
它取决于函数是否返回值以及它返回哪种类型的值...
如果该函数无效,而您只是出于副作用而调用它,则:
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) }
基于函数的名称,这最后一个不太可能,但是为了完整起见,我将其放在此处。
关于ios - 如何从Observable <BleHandler.BlePeripheral>到BleHandler.BlePeripheral?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/61024298/