我如何从 Observable<BleHandler.BlePeripheral> 到 BleHandler.BlePeripheral?

How do I get from Observable<BleHandler.BlePeripheral> to BleHandler.BlePeripheral?

我有一个 variablearray.

上使用 flatMap 后得到类型 Observable<BleHandler.BlePeripheral>
let scannedPeripheral: Observable<BleHandler.BlePeripheral> = instance.bleScan()
            .flatMap{ Observable.from([=12=])}

但现在我需要在另一个需要 BleHandler.BlePeripheral:

function 中使用那个 variable
instance.bleEstablishConnection(scannedPeripheral: scannedPeripheral)

显然是行不通的。有没有办法让我的 Observable<BleHandler.BlePeripheral> 变成 BleHandler.BlePeripheral

这取决于函数 returns 是否是一个值以及它是什么类型的值 returns...

如果该函数是无效的,而您只是为了副作用而调用它,那么:

let disposable = scannedPeripheral
    .subscribe(onNext: { instance.bleEstablishConnection(scannedPeripheral: [=10=]) })

如果你的函数有副作用并且 returns 一个 Observable 那么:

let returnValue = scannedPeripheral
    .flatMap { instance.bleEstablishConnection(scannedPeripheral: [=11=]) }

如果该函数没有副作用,而您只是调用它来将您的值转换为不同的值,那么:

let returnValue = scannedPeripheral
    .map { instance.bleEstablishConnection(scannedPeripheral: [=12=]) }

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