一、async函数与generator函数的关系
她同样适用用来处理异步操作,并且async函数是对generator函数的优化,generator函数需要第三方的工具(CO模块)来帮助其自动运行。而async函数则是对generator函数和自动运行函数的结合,更加方便。
差别一、在形式上的差别:(*变为了async,yield变成了await)
//generator函数
var gen = function*(){
yield Promise.resolve(1);
yield Promise.resolve(2);
}
var co = require(co);
co(gen);//利用CO模块来使得函数自动运行
//async函数
var asyncFunc = function(){
await Promise.resolve(1);
await Promise.resolve(2);
}
asyncFunc();
差别二、yield后面只能是Thunk函数或者是promise对象,而await后面还可以是非promise对象,运行的是有,async函数会检查await后面是否为promise对象,如果不是会自动转化为promise对象.
网友评论