下面看一段代码:
/.顺序执行Promise .
private orderGo() {
this.firPromise().then((data)=> {
console.log(data);
return this.secPromise();
})
.then((data)=> {
console.log(data);
return this.thirdPromise();
})
.then((data)=> {
console.log(data);
console.log("三个执行完毕");
})
}
按照顺序,每隔一段时间执行一个异步回调,在firPromise方法中传给resolve的数据,可以再接下来的then方法中拿到,下面运行结果:
firPromise secPromise thirdPromise 三个方法的定义如下:
private firPromise(): Promise {
let result = new Promise((resolve, reject)=> {
setTimeout(function() {
console.log("执行第一个Promise, 500ms");
resolve("第一个执行完毕");
}, 500);
})
return result;
}
private secPromise(): Promise {
let result = new Promise((resolve, reject)=> {
setTimeout(function() {
console.log("执行第二个Promise, 300ms");
resolve("第二个执行完毕")
}, 300);
})
return result;
}
private thirdPromise(): Promise {
let result = new Promise((resolve, reject)=> {
setTimeout(function() {
console.log("执行第三个Promise, 200ms");
resolve("第三个执行完毕")
}, 200);
})
return result;
4、reject的用法
到这里大家应该对Promise有了大概的认知,前面笔者只介绍了resolve的用法,还没有介绍reject的用法,下面通过一个简单的例子来捕捉失败的回调:
private rejectPromise(): Promise {
let result = new Promise((resolve, reject)=> {
let math: number = Math.floor(Math.random() .10);
if(math >= 5) {
resolve("随机数大于5: " + math);
} else {
reject("随机数小于5");
}
})
return result;
}
调用 rejectPromise方法
this.rejectPromise().then( //reject的用法
(data)=> {
console.log(data);
},
(data)=> {
console.log(data);
}
)
上面这段代码,随机数如果大于5代表成功了,反而代表失败了执行reject方法,运行结果有两种:
5、all的用法
Promise的 all 提供并行执行异步操作的能力,并且在所有异步操作执行完毕之后才执行回调 。依旧使用上面第一的三个方法,all用法如下:
// -------------all用法---------------
Promise.all([this.firPromise(), this.secPromise(), this.thirdPromise()])
.then((datas)=> {
console.log(datas);
})
// -------------all用法---------------
运行结果:
all方法并行执行三个Promise对象,并把所有异步执行的结果放进一个数组中传递给then,就是上面的datas 。
猜你喜欢
- with的六种用法 with的详细用法集合
- xag是什么货币
- 瘦脸溶脂针的优势和注意事项各是什么?
- 牛蒡根是什么作用
- 牛蚌是什么动物
- 养吉娃娃的好处是什么
- 小鹿犬和吉娃娃的区别是什么
- 爱斯基摩犬和萨摩耶的区别是什么
- 阿拉斯加犬哈士奇区别是什么
- 黑背和德牧的区别是什么
