📜  Promise.all - Javascript (1)

📅  最后修改于: 2023-12-03 14:45:40.361000             🧑  作者: Mango

Promise.all - Javascript

在Javascript中,Promise.all方法可以用来并行执行一组Promise,并且当所有Promise都执行完毕后执行一些操作。

语法
Promise.all(iterable);
  • iterable: 一个可迭代对象,如Array等。
参数

Promise.all()方法接受一个可迭代对象,如Array等,并返回一个新的Promise对象。

返回值

Promise.all()方法的返回值是一个新的Promise对象,该Promise对象的结果将在所有Promise都完成时得到。

使用示例
const getWeather = (city) => {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve(`The weather in ${city} is sunny.`);
    }, Math.floor(Math.random() * 5000));
  });
};

const cities = ['London', 'New York', 'Tokyo'];

Promise.all(cities.map(getWeather))
  .then((results) => {
    console.log(results);
  })
  .catch((error) => {
    console.error(error);
  });

在这个示例中,我们定义了一个名为getWeather的函数,该函数返回一个Promise,以模拟获取城市天气的操作。我们选择三个城市作为测试数据,并使用Promise.all()方法异步获取所有城市的天气信息,并将结果打印到控制台上。

注意事项
  • 当Promise中任意一个被rejected时,Promise.all()将直接返回reject的那个Promise的结果。
  • 迭代器中的每个元素都必须是Promise对象,或者是具有then()方法的对象。
结论

Promise.all()方法是一个强大的工具,可以帮助我们在Javascript中优雅地处理异步操作。它可以同时处理多个Promise,并且等待所有Promise都执行完毕后执行一些操作,大大提高了代码的效率和可读性。