Скажем, у меня есть 2 наблюдаемых (A и B), которые по сути являются сетевыми вызовами (с использованием Retrofit для предоставления контекста).
Текущий поток приложения выглядит следующим образом:
- A и B запускаются примерно в одно и то же время (асинхронно).
- B выполняется 0 или более раз при взаимодействии с пользователем
У меня есть 3 разных сценария, которые я хочу прослушать, учитывая эти 2 вызова observables/api.
- Я хочу знать сразу, когда Observable A завершится
- Я хочу знать немедленно, когда Observable B завершится
- Я хочу знать, когда оба завершили
Во-первых, это хороший вариант использования RxJava?
Я знаю, как выполнять каждый сценарий по отдельности (используя zip
для последнего), хотя я не знаю, как выполнять их все одновременно.
Если я подпишусь на Observable A, начнется A. Если я подпишусь на B, начнется B. Если A и B завершатся до того, как я подпишусь на zip(a, b), я могу пропустить событие и никогда не увидеть его завершенным, верно?
Любое общее руководство будет оценено. Мои знания RxJava довольно скудны: P