Я хочу получить API, который возвращает данные на страницах по 50 элементов, но я не знаю, сколько их элементов (и, следовательно, страниц).
Моя идея - отправлять 20 запросов параллельно, каждыйодин будет запрашивать i-ую страницу, а затем i-ю + 20-ю страницу и т. д., пока страница не станет пустой, и в этом случае я заканчиваю.
При таком подходе я выполняю не более 20 ненужных запросов.
Дело в том, что я не знаю, как структурировать этот цикл с помощью наблюдаемых.
Я представил что-то вроде этого:
return Observable.from(_.range(0, 20))
.map((pageNo) => fetchPage(pageNo))
.while((page) => isValid(page));
, но этот метод while
или аналогичныене существует / работа
Я нашел этот похожий вопрос, но он использует interval
, который кажется неэффективным RxJs Наблюдаемый интервал до достижения желаемого значения
Насколько я понимаю, я могуне используйте takeWhile
, потому что он проверяет условие, которое уже выполнено, а не ответ на запрос, который еще предстоит сделать.