我有一个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) }
根据函数的名称,这最后一个不太可能,但是为了完整起见,在此将其放在此处。