【发布时间】:2023-03-11 05:23:01
【问题描述】:
我正在尝试对Publisher 执行副作用,但找不到任何允许我执行此类操作的运算符。准确地说,我正在寻找一个类似于 RxSwift 的 do(on:) 的概念。
这就是我想要做的。
我正在为第 3 方 SDK 提供的委托编写反应式包装器。它和用于与 BLE 设备交互的 SDK。我有像startScanning 和stopScanning 这样的方法,我想要实现的是对信号做出反应并调用stopScanning 作为任何错误或完整事件的副作用。到目前为止,我有这样的事情:
newDeviceFoundPublisher
.timeout(.seconds(timeout), scheduler: DispatchQueue.global())
.eraseToAnyPublisher()
而我想要实现的是:
newDeviceFoundPublisher
.timeout(.seconds(timeout), scheduler: DispatchQueue.global())
.doOnError {
manager.stopScanning()
}
.doOnComplete {
manager.stopScanning()
}
.eraseToAnyPublisher()
是否已经有类似的东西,或者我可能遗漏了一些东西,而在 Combine 中有一些东西我可以使用并获得结果?
【问题讨论】: