ES6:async函数

一、含义

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);

猜你喜欢

转载自my.oschina.net/lcl6659/blog/1801433