RxJava 2.0 — как создать наблюдаемое из завершаемых объектов

#rx-java #rx-java2

#rx-java #rx-java2

Вопрос:

Допустим, у меня есть что-то вроде

 Completable doTask();
  

То, что я хочу реализовать, — это поток, который генерирует элемент только («Завершено») после завершения doTask().

Для Observable я могу выполнить doTask().map(f -> just(«Завершено»)); Но как я могу сделать это для Completable, если он завершается, ничего не испуская по своей природе?

Комментарии:

1. Используйте Single . Completable -ы для бесполезного завершения.

2. Дело в том, что я не могу изменить этот Завершаемый параметр, поскольку он предоставляется api. Может быть, я могу использовать doTask().toSingleDefault(true).map(t -> just(«Завершено»))?

Ответ №1:

Вы были правы в своем комментарии, но вместо этого используйте doTask().toSingleDefault("Completed");

Комментарии:

1. В чем разница с / без .complete()?

2. Ответ является просто общим, в вашем конкретном случае это выглядело бы так: doTask().toSingleDefault("Completed");

3. Это был просто намек, который вам не нужно использовать toSingleDefault(true).map(t -> just("Completed"))