mitaichik
@mitaichik

Rx: как повторять подписку до определенного результата?

Всем привет!

Не могу точно сформулировать вопрос, опишу что надо:

Есть Single<SomeObject> - запрос через Retrofit.
У SomeObject есть поле status
И мне нужно повторять этот запрос до тех пор, пока это поле не примет определенное значение.
И только после этого subscribe должен получить результат.

Что то типа repeatWhen, но в repeatWhen я не могу получить возвращенный SomeObject чтоб проверить статус (я так понял из документации).

Есть ли способ сделать такое элегантно, чисто на Rx?

Заранее спасибо!
  • Вопрос задан
  • 94 просмотра
Пригласить эксперта
Ответы на вопрос 2
@tuwkan
В map проверять значение и если не оно кидать ошибку. Далее retryWhen
Ответ написан
Можно использовать рекурсивно switchMap.
Если результат удовлетворителен, то возвращать его обернув в just. Иначе вернуть новый Single, дёрнув ту же функцию.

Предусмотрите задержку.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
ЭЛКОМ+ Санкт-Петербург
от 80 000 до 110 000 руб.
АКМЭ сервис Санкт-Петербург
от 80 000 до 110 000 руб.
iGooods.ru Санкт-Петербург
от 150 000 руб.