92. Promiseをthrottleする

JavaScript
お役に立つのか?

トータルで - accepted /- tried

仮に100のAPIを叩いてデータをとることになる、しかもできるだけ速くしたい、

Promise.all()を使うと、100のリクエストが一気にサーバーに届き、スペックの低いサーバーが死んでしまう。

APIコールに制限をかけて、常に最大5つのリクエストが進行中にしてください。

throttlePromises()関数を作ってください。一つ目の引数はpromiseを返す関数の配列、二つ目は同時進行するAPIの最大数。


// 使い方は `Promise.all`とほぼ一緒。
throttleAsync(fetchers, 5).then((data) => {
  // ...
}).catch((err) => {
  // ...
})

上記のコードで、サーバーが助かる!

15分間以内で解いてみて