# Promise 快速入门

# 1. 静态方法

# 1.1. Promise.all()

语法:

Promise.all(promises) 
  .then((results) => {
    // results: 所有 Promise 成功的结果列表
  })
  .catch((e) => {
    // e: 第一个失败的 Promise 的错误
  })

说明:

  • 所有 Promise 都执行成功,则进入 resolve 回调,resolve 回调的形参为 结果列表
  • 如果有一个 Promise 失败,则返回第一个失败的 Promise 的结果

示例:

const promise1 = Promise.resolve(3)
const promise2 = 42;
const promise3 = Promise.reject(new Error('promise3 error'));
const promise4 = Promise.reject(new Error('promise4 error'));

Promise.all([promise1, promise2])
  .then((values) => {
    console.log(values); //  Array [3, 42]
  })
  .catch((e) => {
    console.log(e)
  });


Promise.all([promise1, promise2, promise3, promise4])
  .then((values) => {
    console.log(values);
  })
  .catch((e) => {
    console.log(e); // Error: promise3 error
  });

# 1.2. Promise.allSettled()

说明:

  • 所有 Promise 执行完成后,则进入 resolve 回调,resolve 回调的形参为 结果列表

示例:

const promise1 = Promise.resolve(3);
const promise2 = Promise.reject('promise2 error');
const promise3 = Promise.reject(new Error('promise3 error'));

const promises = [promise1, promise2];

Promise.allSettled([promise1, promise2, promise3]).then((results) =>
  console.log(results)
);

/*
Array [
  Object { status: "fulfilled", value: 3 }, 
  Object { status: "rejected", reason: "promise2 error" }, 
  Object { status: "rejected", reason: Error: promise3 error }
]
*/

# 1.3. Promise.any()

TODO

# 1.4. Promise.race()

TODO

# 1.5. Promise.reject()

TODO

# 1.6. Promise.resolve()

TODO

# 2. 参考

本章目录