一、含义
async函数就是Generator函数与promise结合使用的语法糖
1、一旦遇到await就会先返回,等到触发的异步操作完成,再接着执行函数体内的后面语句
2、返回promise对象,可以使用then方法指定下一步操作
3、await后面是Promise时,才当作异步;后面是原始类型时(数值、字符串、布尔值),当作同步操作
二、语法
//异步操作,需要返回promise
function pp(number){
return new Promise(function(resolve,reject){
setTimeout(function(){
resolve(number*10);
},2000);
});
}
//定义async函数
async function asFun(){
var ss = await pp(1);
console.log("ss",ss);
var dd = await pp(ss);
console.log("dd",dd);
console.log(111111111);
}
//执行async函数
asFun().then(function(){
console.log(4444444444)
})
三、注意
1、await命令后面的Promise对象,运行结果可能是Rejected,所以最好把await放在try...catch里面
方式一:
try{
await promise()
}catch(err){
//.....
}
方式二:
await promise().catch(function(err){
//....
});
2、如果希望多了异步请求并发,可以使用Promise.all方法
var results = await Promise.all(promises);