一、含义
ES7中提供了async函数,是的异步操作变得更加方便。
async 函数就是Generator函数的语法通。
async函数的实现就是讲Generator函数和自动执行器包装在一个函数里。
二、用法
同Generator函数一样,async函数返回一个Promise对象,可以使用then() 添加回调函数,当函数执行的时候,一旦遇到await 就会先返回,等到出发的异步操作完成,再接着执行函数体内后面的语句。
var async = require('asyncawait/async');
var await = require('asyncawait/await');
function timeout(ms) {
return new Promise((resolve) => {
setTimeout(resolve, ms);
});
}
async function asyncPrint(value, ms) {
await timeout(ms);
console.log(value)
}
asyncPrint('hello world', 50);
我也不知道为什么上面这种写法放在nodejs中总是报错,但是我换种写法就能正常运行了。
var async = require('asyncawait/async');
var await = require('asyncawait/await');
function timeout(ms) {
return new Promise((resolve) => {
setTimeout(resolve, ms);
});
}
(async(
function () {
await(timeout(50));
console.log('hello world');
}
))();
await 命令只能用在async函数之中,如果用在普通函数中就会报错。