Promise
有三种状态:pending(准备进行中),resolved(完成),rejected(失败)
语法
var p=new Promise(function(resolve,reject){
var i=3;
if(i>2){
resolve();
}else{
reject();
}
})
p.then(function(){
},function(){
});
Promise 中状态只能执行一次
在Promise中resolve和reject,只能被调用一次,不能同时调用
在Promise中只有一个状态,准备状态pending
当执行resolve或者reject时,这个Promise当中状态就会被修改
如果当前状态不是准备状态pending时,就不会再执行resolve或者reject
then中的第一个函数,是Promise里面执行了resolve方法
p.then(function(num){
console.l(num);
})
catch中的函数,是Promise里面执行reject方法
p.catch(function(num){
console.log(num);
})
Promise.resolve() 返回一个Promise对象,状态为resolved
Promise.reject() 返回一个Promise对象,状态为rejected
Promise.prototype.then()
Promise.prototype.catch()
Promise.all();
将Promise对象数组按照顺序异步全部完成后再then的第一个函数中,传入完成结果
Promise.race()
将Promise 对象数组中最先执行完成的内容通过后面then传入
catch():发生错误的回调函数
异步
async异步操作返回一个Promise对象可以使用then链式调用
async function fn(){
var a=123;
return a;
}
var p=fn();
console.log(p);//Promise {<resolved>: 123}
p.then(function(list){
console.log(list);
}) //123
async是异步操作,而await就是等待一个异步任务完成的结果。简单的说await是一个操作符,async是异步的方法。
await只能用在async中
版权声明:本文为qq_44957616原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。