Я пытаюсь получить все страницы, пока не останется ни одной страницы или пока не будет достигнут некоторый лимит (скажем, 10 страниц).
Если я пойду таким образом:
obs.pipe(expand((page) => {
return service.call(page).nextPage;
}),
take(10),
takeWhile(morePages));
Тогда дубль 10 всегда происходит.Если я пойду следующим образом:
obs.pipe(expand((page) => {
return service.call(page).nextPage;
}),
takeWhile(morePages),
take(10));
, тогда он может вызывать намного больше, чем 10 раз.
Другой вариант - я пишу свой собственный takeWhile, который включает в себя собственный счетчик.Я сделаю это таким образом, но я надеюсь, что смогу построить это устройство, используя стандартные опции rxjs.