我认为promise相当于一个容器,把一些发生未完成的事件保存在promise容器中,在容器中发生完,
在容器中的事件都绑定着三个可能存在的状态,事件发生的结果影响着这三种的状态,也只有异步操作结果可以决定这三种状态,其他任何操作都无法改变这种操作,一旦这种状态改变,就不会再发生变化了,任何时候都可以获得这种状态的结果,
状态如下:
pending 未发生完成的状态
resolved 已完成的状态
rejected 已失败的状态
状态的改变只有两种可能:
1) pending==>resolved
2) pending==>rejected
代码如下:
let p=new Promise(function(resolve,reject){
if(username===”yao”&&password==”123”){
resolve(“成功”);
}else{
reject(“失败”);
}
});
p.then(function(res){console.log(res)},function(err){console.log(err)});