前言
创建一个新的Promise对象,除了使用new
之外,还提供了四个类方法(静态方法)供我们使用;分别是resolve、reject、all、race
。
一、resolve
创建了一个立即resolve的对象
let promise = Promise.resolve(5);
等价于
let promise = new Promise((resolve) => {
resolve(5)
})
二、reject
创建了一个立即reject的对象
let promise = Promise.reject(5);
等价于
let promise = new Promise((resolve, reject) => {
reject(5);
});
三、all
把多个Promise对象合并为一个Promise对象;
taskOne() {
return new Promise((resolve) => {
setInterval(() => {
resolve(4);
}, 1000);
});
},
taskTwo() {
return new Promise((resolve) => {
setInterval(() => {
resolve(2);
}, 2000);
});
},
let promise = Promise.all([
this.taskOne(),
this.taskTwo()
]);
promise
.then((value) => {
console.log(value, "resolve");
})
.catch((error) => {
console.log(error, "error");
});
- 被合并的几个Promise对象是并行执行的;
- 在几个Promise对象执行完毕后,才会走到then内部,并且返回所有对象结果值的数组
- 一旦有其中某一个对象返回了异常,则直接返回异常,执行catch;
四、race
把多个Promise对象合并为一个Promise对象;
let promise = Promise.race([
this.taskOne(),
this.taskTwo()
]);
- 被合并的几个Promise对象是并行执行的。
- 只要有其中一个Promise对象执行完毕,就会走到then内部,并且返回改对象的结果值
- 一旦有其中一个对象返回了异常,则直接执行catch;
网友评论