coj*_*joj 2 frp ios swift combine
我正在尝试对 执行副作用Publisher,但找不到任何允许我执行此类操作的运算符。准确地说,我正在寻找一个类似于 RxSwift 的do(on:).
这就是我想要做的。我正在为 3rd 方 SDK 提供的委托编写一个反应式包装器。它和用于与 BLE 设备交互的 SDK。我有像startScanning和这样的方法,stopScanning我想要实现的是对信号做出反应并stopScanning作为任何错误或完整事件的副作用进行调用。到目前为止,我有这样的事情:
newDeviceFoundPublisher
.timeout(.seconds(timeout), scheduler: DispatchQueue.global())
.eraseToAnyPublisher()
Run Code Online (Sandbox Code Playgroud)
我想要实现的是:
newDeviceFoundPublisher
.timeout(.seconds(timeout), scheduler: DispatchQueue.global())
.doOnError {
manager.stopScanning()
}
.doOnComplete {
manager.stopScanning()
}
.eraseToAnyPublisher()
Run Code Online (Sandbox Code Playgroud)
是否已经有这样的东西,或者我可能遗漏了一些东西,我可以使用Combine中的某些东西并获得结果?
mat*_*att 11
您可能正在寻找.handleEvents接线员。您可以使用五个不同参数中的任何一个来实现它;它们都是可选的,所以只实现你需要的那些。错误和完成都算作receiveCompletion:.
请注意,如果您不这样做,错误仍然会沿着管道向下流动catch!(无论如何,完成都会沿着管道流下来,我认为你无法阻止它。)