前言
最近也在学习Promise,对Promise的原理做一个较为简单的解释,欢迎讨论。
正文
Promise主要用来处理异步问题,先写一个简单Promise函数。
var p=new Promise(function(resolve,reject){
var i=3;
if(i>3){
resolve();
}else{
reject();
}
})
var s=p.then(function(){
// 执行resolve
},function(){
// 执行reject
})
s.then(function(){
},function(){
})
resolve 表示条件成立时执行的函数,
reject 表示条件不成立是要执行的函数。
在Promise中为了保证resolve或者reject函数调用的唯一性,还有一个至关重要的状态pending(state)
先打印一个Promise函数
var p=new Promise(function(resolve,reject){
})
console.log(p);
输出台打印出来,可以看到此时的状态是pending,表示现在函数处于一个准备状态
var p=new Promise(function(resolve,reject){
resolve()
})
console.log(p);
当我们执行了resolve函数,Promise的状态则变为resolve,reject同理。
当我们同时执行了resolve和reject,Promise的状态也不会变,还是resolve。即保证了在整个Promise中,resolve或者reject的调用的唯一性。
var p = new Promise(function (resolve, reject) {
resolve();
reject();
});
console.log(p);