I'm trying to perform side effect on Publisher
, and I can't find any operator which will allow me to do something like this. To be precise, I'm looking for a concept similar to RxSwift's do(on:)
.
Here's what I'm trying to do.
I'm writing a reactive wrapper for a delegate provided by a 3rd party SDK. It's and SDK for interacting with BLE devices. I have methods like startScanning
and stopScanning
and what I want to achieve is to react to signals and call stopScanning
as a side effect of any error or complete events. So far, I have something like this:
newDeviceFoundPublisher
.timeout(.seconds(timeout), scheduler: DispatchQueue.global())
.eraseToAnyPublisher()
and what I want to achieve is something like:
newDeviceFoundPublisher
.timeout(.seconds(timeout), scheduler: DispatchQueue.global())
.doOnError {
manager.stopScanning()
}
.doOnComplete {
manager.stopScanning()
}
.eraseToAnyPublisher()
Is there already something like this or maybe I'm missing something, and there's something in Combine I can use and get the result?