56. ページネーションのつくAPIを叩く
シェアしよう
少し工夫が必要 - accepted / - tried
ページネーションのつくAPIを順番通りに叩くシナリオに遭ったことありますか?
とあるitems
配列を返す/list
API
// fetchList はすでに提供済み、そのまま使えるconst fetchList = (since?: number) => Promise<{items: Array<{id: number}>}>
- まず
fetchList
を叩いて、レスポンスにある最後のitem id - lastItemId を取得する 2.fetchList(lastItemId)
を実行し、次のlastItemIdを取得する - 1と2の繰り返し
/list
APIから5つのitemが返ってくるを想定しるとよい。ただしサーバーサイドのフィルタリングの影響で、実際返ってくるのは5より少ない可能性がある。 もし一つでも返ってこなければ、もうさらに返ってくるのはないので、APIを叩くのを止めるべき。
任意の数のitemを取得する関数を作ってください
const fetchListWithAmount = (amount: number = 5) { }
補足
for loopで解決できる、またはもっとかっこいいasync iterators or async generatorsを使っても良い。練習のために、どちらも試してみてください。