运用Promise能够防止回调函数的层层嵌套,还供应了范例越发轻易的对异步操纵举行掌握。供应了reject,resolve,then和catch等要领
Promise有三种状况:
挂起状况 胜利状况 失利状况
Promise是ES6以后原生的对象,我们只需要实例化Promise对象就能够直接运用。实例化Promise:
var p = new Promise(function(resolve,refused){
console.log("abc");//abc
//resolve();
setTimeout(function(){
resolve();
},3000)//定时器
console.log("123");
});
p.then(function(){
console.log("dfe")//用resolve()实行
});*/
setTimeout(function(){
console.log(1);
setTimeout(function(){
console.log(2)
setTimeout(function(){
console.log(3);
},3000)
},2000)
},1000);*/
var p1=new Promise(function(resolve,refused){
setTimeout(function(){
resolve()
},1000);
});
p1.then(function(){
console.log(1);
/*return new Promise(function(resolve,refused){
setTimeout(function(){
resolve();
},2000);
});*/
return sleep(2000);
}).then(function(){
console.log(2);
/*return new Promise(function(resolve,refused){
setTimeout(function(){
resolve();
},3000);
});*/
return sleep(3000);
}).then(function(){
console.log(3);
});
function sleep(times){
return new Promise(function(resolve,refused){
setTimeout(function(){
resolve();
},2000);
});
}
var pp=new Promise(function(resolve,refused){
//resolve()
refused();
});
胜利
胜利以后实行then要领
/*pp.then(function(){
console.log("dddfff")
})
失利
失利以后实行catch要领
pp.catch(function(){
console.log("llll")
})