Канонический способ конвертировать Completable в Single? - PullRequest
0 голосов
/ 03 июня 2018

У меня есть RxJava Completable, который я хочу выполнить, затем добавьте Single<Long>.Я могу написать это так:

return Completable.complete().toSingleDefault(0L).flatMap { Single.just(1L) }

, но это кажется излишне сложным.Я бы подумал, что Completable#toSingle() сделает эту работу, но если я напишу:

Completable.complete().toSingle { Single.just(1L) }

, я получу ошибки.В Completable отсутствует функция или я что-то пропускаю?

1 Ответ

0 голосов
/ 03 июня 2018

Вы, вероятно, хотите использовать оператор andThen, который подпишется на источник, который вы отправляете ему после завершения Completable.

return Completable.complete()
    .andThen(Single.just(1L))

Как сказал @akarnokd, это случай независимых зависимых продолжений .

В случае, если ваш источник необходимо разрешить во время выполнения, это будет отложенное зависимое продолжение ,и вам нужно defer это:

return Completable.complete()
    .andThen(Single.defer(() -> Single.just(1L)))
...