【2、koa】async和await(ES7)

gitbook链接

async和await(ES7)

async是异步的简写;await可以认为是async wait的简写

  • async用于声明一个function是异步的
async function getData(){
	return 'smileyyqp';
}
console.log(getData());		//返回一个Promise;异步方法
  • await用于等待一个异步方法执行完成

如何获取异步方法中的数据

  • 方法一:类似回调的方法
async function getData(){
	return 'smileyyqp';
}

var p = getData();
p.then((data)=>{
	console.log(data);
})
  • 方法二:await
    • awit是等待异步方法执行完成,可以获取异步方法李慕安的数据,但是必须的用在异步方法里面
async function getData(){
	return 'smileyqp';
}

async function test(){
	var d = await getData();
	console.log(d)
}

await阻塞的功能(将异步转换成同步)

async function getData(){
	console.log(2)
	return 'smileyqp';
}

async function test(){
	console.log(1)
	var d = await getData();
	console.log(d)
	console.log(3)
}
test();
//1 2 3

获取异步方法中的数据(返回Promise的方法)

function getData(){
	return new Promise((resolve,reject)=>{
		setTimeout(()=>{
			var username = 'smileyqp';
			resolve(username);
		},1000)
	});
}
//方法二(New):
async function test(){
	var data = await getData();
	console.log(data)
}
//方法一(Old):
var p = getData();
p.then(function(data){
	console.log(data)
})
原文地址:https://www.cnblogs.com/smileyqp/p/12675232.html