Является ли использование BlockingObservable плохой практикой, когда вам нужно выполнить все параллельные вызовы? [closed]

У меня есть вариант использования, когда я вызываю четыре отдельные конечные точки нисходящего потока, и все они могут быть вызваны параллельно. После завершения каждого вызова я возвращаю объект-контейнер из лямбда-функции, ее единственная цель — содержать необработанные ответы от последующих вызовов к нему. Оттуда объект-контейнер будет преобразован в требуемую модель для потребителя.

Вот, грубо говоря, структура кода:

Observable.zip(o1, o2, o3, o4, 
(resp1, resp2, resp3, resp4) 
-> new RawResponseContainer(resp1, resp2, resp3, resp4)
).toBlocking().first();

Есть лучший способ сделать это? Мне на 100% нужно, чтобы все наблюдаемые были выполнены; в противном случае трансформация потребительской модели будет неполной. Хотя я полагаю, что я мог бы преобразовать каждый индивидуальный ответ от каждого наблюдаемого «на лету», вместо того, чтобы ждать преобразования каждого ответа сразу, мне все же нужно, чтобы каждый вызов завершался до завершения преобразования.

Я читал, что использование toBlocking () при использовании rx — плохая практика (кроме «устаревших» приложений), поэтому любая помощь приветствуется.

0

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *