Promise 静态方法
Promise.resolve(data)
直接把一个任务变成完成状态(fulfilled)
Promise.resolve()
等价于下面代码
const p = new Promise((resolve) => {
resolve();
});
Promise.reject(reason)
直接把一个任务变成失败状态(rejected)
Promise.reject()
等价于下面代码
const p = new Promise((resolve, rejected) => {
rejected();
});
Promise.all([...task])
返回一个 Promise 任务数组里面全部成功才会成功 如果有一个失败就会失败
const p = Promise.all([
Promise.resolve(1),
Promise.resolve(2),
Promise.resolve(3),
]);
p.then((data) => {
//[1,2,3]
console.log(data);
});
Promise.any([...task])
返回一个 Promise 任务数组里面有一个成功就会成功 如果有一个失败就会失败
const p = Promise.any([
Promise.resolve(1),
Promise.reject(2),
Promise.resolve(3),
]);
p.then((data) => {
// 1
console.log(data);
});
Promise.allSettled([...task])
返回一个 Promise 数组里面的所有任务状态不是挂起状态(pending) 则成功
const p = Promise.allSettled([
Promise.resolve(1),
Promise.reject(2),
Promise.resolve(3),
]);
p.then((data) => {
// [
// {
// status: "fulfilled",
// value: 1,
// },
// {
// status: "rejected",
// value: 2,
// },
// {
// status: "fulfilled",
// value: 2,
// },
// ];
console.log(data);
});
Promise.race([...task])
返回一个 看任务数组里面 哪个任务里面有结果 就返回谁
// 可以用作fetch的超时处理
const p = Promise.allSettled([
Promise.resolve(1),
new Promise((reject) => {
setTimeout(() => {
reject();
}, 500);
}),
]);
p.then((data) => {
// 1
console.log(data);
});