с типичной постраничной API, который возвращаетнерекурсивна пагинация обещаний
{
"data": ...,
"nextPageHref": <url>
}
как я могу извлечь все страницы в JavaScript без использования рекурсии?
(рекурсивное решение что-то вроде)
fetchPaginated(url) {
return fetch(url).then(result => result.nextPageHref
? fetchPaginated(result.nextPageHref).then(results => _.concat(result, results))
: result
}
Почему вы хотите сделать это без рекурсии? –
более дорогие трассировки стека и JS не являются хвостовыми рекурсивными (по крайней мере, не везде, а не на время). – JonathanR
Если вы используете то, что мне нужно, я считаю, что надлежащая библиотека specs Promise должна делать что-то похожее слишком nextTick, поэтому ваш стек должен очистить. Если это то, что вы подразумеваете под «более приятными стековыми следами». – Keith