首页 > 解决方案 > 如何在 for 循环中进行异步/等待?

问题描述

我在 for 循环中使用 async await ,如下所示。

for (let i = 0; i < result.length; i += 1) {
  try{
    const client = await axios.get(
      `${process.env.user}/client/${result[i].id}`
    );
  } catch(error){
    console.log(error)
  }
    if (client.data.success === true) {
      result[i].Name = rider.data.client.Name;
      result[i].PhoneNumber = rider.data.client.Number;
    }
  }

但我想使用 'new Promise' 和 'promiss.all' 来实现异步。
但我不知道如何正确处理错误。
你能为此推荐一些建议吗?感谢您阅读。

标签: javascriptnode.js

解决方案


这就是你使用async/await+的方式Promise.all

const myResult = await Promise.all(result.map(({ id }) => {
  return axios.get(`${process.env.user}/client/${id}`);
}));

// deal with the result of those requests
const parsed = myResult.map(data => /* your code here */);

推荐阅读