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() }
}

0 ответов

Другие вопросы по тегам