【javaScript】promise常用方法

promise常用方法

相关文章

promise常用方法


一、Promise.resolve()

返回一个状态为已完成(fulfilled)并且带有给定值的 Promise 对象。

1
let promise = Promise.resolve('resolved');

二、Promise.reject()

返回一个状态为已拒绝(rejected)并且带有给定原因的 Promise 对象。

1
let promise = Promise.reject('rejected');

三、Promise.prototype.then()

添加一个回调函数,用于处理 Promise 对象的状态变为已完成时的情况。

1
2
3
promise.then(value => {
console.log(value); // 'resolved'
});

四、Promise.prototype.catch()

添加一个回调函数,用于处理 Promise 对象的状态变为已拒绝时的情况。

1
2
3
promise.catch(reason => {
console.error(reason); // 'rejected'
});

五、Promise.prototype.finally()

添加一个回调函数,无论 Promise 对象的状态变为已完成还是已拒绝,都会执行该回调函数。

1
2
3
promise.finally(() => {
console.log('Promise settled');
});

六、Promise.all()

返回一个 Promise 对象,当所有给定的 Promise 对象都已完成时,该 Promise 对象才会变为已完成状态。

1
2
3
4
5
let promises = [Promise.resolve('a'), Promise.resolve('b')];
Promise.all(promises)
.then(values => {
console.log(values); // ['a', 'b']
});

七、Promise.race()

返回一个 Promise 对象,只要有一个 Promise 对象状态变为已完成或已拒绝,那么返回的 Promise 对象就会立即跟着变为相同的状态,并返回对应的值或原因。

1
2
3
4
5
6
7
8
let promises = [Promise.resolve('a'), Promise.reject('b')];
Promise.race(promises)
.then(value => {
console.log(value); // 'a'
})
.catch(reason => {
console.error(reason); // 'b'
});

八、Promise.any()

返回一个 Promise 对象,给定的多个 Promise 对象中至少有一个变为已完成状态时,返回的 Promise 对象才会变为已完成状态。如果所有 Promise 对象都变为已拒绝状态,那么返回的 Promise 对象就会变为已拒绝状态,并抛出一个 AggregateError 异常,其中包含所有拒绝的原因。

1
2
3
4
5
6
7
8
let promises = [Promise.reject('a'), Promise.resolve('b')];
Promise.any(promises)
.then(value => {
console.log(value); // 'b'
})
.catch(error => {
console.error(error); // 'AggregateError: All promises were rejected'
});

九、Promise.allSettled()

返回一个 Promise 对象,当所有给定的 Promise 对象都已完成(无论是已完成还是已拒绝)时,该 Promise 对象才会变为已完成状态。与 Promise.all() 不同的是,Promise.allSettled() 不会在任何 Promise 对象被拒绝时立即拒绝。

1
2
3
4
5
6
let promises = [Promise.resolve('a'), Promise.reject('b')];
Promise.allSettled(promises)
.then(results => {
console.log(results);
// [{ status: 'fulfilled', value: 'a' }, { status: 'rejected', reason: 'b' }]
});

喜欢这篇文章?打赏一下支持一下作者吧!
【javaScript】promise常用方法
https://www.cccccl.com/20210501/javascript/promise常用方法/
作者
Jeffrey
发布于
2021年5月1日
许可协议