javaScript中的Promise
时间:2021-06-10 18:52:18
收藏:0
阅读:0
javaScript中的Promise
Promise的概述
- Promise是异步编程的一种解决方案,可以替代传统的解决方案--回调函数和事件
- Promise有一下两个特点:
- 对象的状态不受外界影响。
- 一旦状态改变了就不会在变,也就是说任何时候Promise都只有一种状态。
Promise状态
- Pending(运行中)
- Resolved(已完成)
- Rejected(已失败)
- Promise从Pending状态开始,如果成功就转到成功状态,执行Resolved回调函数,反之执行Rejected;
Promise基本用法
-
通过Promise的构造函数创建Promise对象。
const proms = (number)=>{ return new Promise((resolved,Rejected)=>{ if(number > 0){ resolved(‘参数大于零‘); }else{ rejected(‘参数小于等于零‘); } }) } proms(3).then(res=>{ console.log(res) // 参数大于零 })
Promise其他用法
- all方法使用(会等到所有promise方法执行完,依次返回)
function p1(){
var promise1 = new Promise(function(resolve,reject){
console.log("p1的第一条输出语句");
console.log("p1的第二条输出语句");
resolve("p1完成");
})
return promise1;
}
function p2(){
var promise2 = new Promise(function(resolve,reject){
console.log("p2的第一条输出语句");
setTimeout(()=>{console.log("p2的第二条输出语句");resolve("p2完成")},2000);
})
return promise2;
}
function p3(){
var promise3 = new Promise(function(resolve,reject){
console.log("p3的第一条输出语句");
console.log("p3的第二条输出语句");
resolve("p3完成")
});
return promise3;
}
Promise.all([p1(),p2(),p3()]).then(function(data){
console.log(data);
})
// p1的第一条输出语句
// p1的第二条输出语句
// p2的第一条输出语句
// p3的第一条输出语句
// p3的第二条输出语句
// p2的第二条输出语句
// [‘p1完成‘,‘p2完成‘,‘p3完成‘]
race则不同它等到第一个Promise改变状态就开始执行回调函数。
评论(0)