RxJava2 setCancellable против doFinally
Является ли действие в setCancellable
называется при всех тех же обстоятельствах, что и doFinally
? В следующем примере я могу просто использовать setCancellable
или делает doFinally
покрыть больше случаев?
var closeable: Closeable? = null
Flowable.defer {
Flowables.create<Closeable>(BackpressureStrategy.BUFFER) { emitter ->
val c = getCloseable()
emitter.setCancellable { c.close() }
if(!emitter.isCancelled) emitter.onNext(c)
}
.doFinally { closeable?.close() }
}