我有一个我要执行的RxJava Completable
,然后链接到Single<Long>
。我可以这样写:
return Completable.complete().toSingleDefault(0L).flatMap { Single.just(1L) }
但这似乎不必要地复杂化。我原以为Completable#toSingle()
会做这个工作,但是如果我写的话:
Completable.complete().toSingle { Single.just(1L) }
我收到错误。 Completable
中是否存在缺失的功能,或者我忽略了什么?
答案 0 :(得分:2)
您可能想要使用andThen
操作符,该操作符将在Completable
完成后订阅您发送给它的源。
return Completable.complete()
.andThen(Single.just(1L))
正如@akarnokd所说,这是non-dependent continuations的情况。
如果您的源需要在运行时解析,那么这将是deferred-dependent continuation,您需要defer
它:
return Completable.complete()
.andThen(Single.defer(() -> Single.just(1L)))