Как я могу запросить API быстрее в течение l oop? - PullRequest
0 голосов
/ 28 апреля 2020

Я разрабатываю свой игрушечный проект с помощью riot api. (Игра league of legends) И у меня есть вопрос. как вы видите, я прошу бунт API для L oop. Это займет 20 секунд ... это проблема. Я думаю, что бунт API не является проблемой. Я думаю, что запрос на l oop является проблемой. Как я могу сделать это быстрее, чем сейчас? Помогите мне, пожалуйста. ㅠ. 100

  for (let cnt = 0; cnt < 20; cnt++) {
    let temp = await api.getMatchInfo(res.matches[cnt].gameId);
    if (temp.gameMode === "CLASSIC" && temp.gameDuration >= 800) {
      console.log("gameList:", temp);
      temp["cnt"] = cnt;
      gameList.push(temp);
      rankCnt++;
    }
  }

1 Ответ

0 голосов
/ 28 апреля 2020

Вместо запроса последовательности для каждого l oop вы можете сделать его параллельным на Promise.all. Вы можете увидеть больше здесь https://developer.mozilla.org/vi/docs/Web/JavaScript/Reference/Global_Objects/Promise/all

const promises = []
for (let cnt = 0; cnt < 20; cnt++) {
  promises.push(api.getMatchInfo(res.matches[cnt].gameId)  
}
Promise.all(promises).then(games => {
  console.log(games)
})
//or
const games = await Promise.all(promises)
console.log(games)
...