56. ページネーションのつくAPIを叩く

少し工夫が必要  - accepted / - tried

ページネーションのつくAPIを順番通りに叩くシナリオに遭ったことありますか?

とあるitems配列を返す/list API

// fetchList はすでに提供済み、そのまま使える
const fetchList = (since?: number) => 
  Promise<{items: Array<{id: number}>}>
  1. まずfetchListを叩いて、レスポンスにある最後のitem id - lastItemId を取得する

2.fetchList(lastItemId)を実行し、次のlastItemIdを取得する 3. 1と2の繰り返し

/list APIから5つのitemが返ってくるを想定しるとよい。ただしサーバーサイドのフィルタリングの影響で、実際返ってくるのは5より少ない可能性がある。 もし一つでも返ってこなければ、もうさらに返ってくるのはないので、APIを叩くのを止めるべき。

任意の数のitemを取得する関数を作ってください

const fetchListWithAmount = (amount: number = 5) { }

補足

for loopで解決できる、またはもっとかっこいいasync iterators or async generatorsを使っても良い。練習のために、どちらも試してみてください。

常にもっといい方法を求めよう。

(58)