async 函数是什么?一句话,async 函数就是 Generator 函数的语法糖。
有一个 Generator 函数,依次读取两个文件。
var fs = require('fs');
var readFile = function (fileName){return new Promise(function (resolve, reject){fs.readFile(fileName, function(error, data){if (error) reject(error);
resolve(data);
});
});
};
var gen = function* (){var f1 = yield readFile('/etc/fstab');
var f2 = yield readFile('/etc/shells');
console.log(f1.toString());
console.log(f2.toString());
};
写成 async 函数,就是下面这样。
var asyncReadFile = async function (){var f1 = await readFile('/etc/fstab');
var f2 = await readFile('/etc/shells');
console.log(f1.toString());
console.log(f2.toString());
};
一比较就会发现,async 函数就是将 Generator 函数的星号(*)替换成 async,将 yield 替换成 await,仅此而已。
http://www.ruanyifeng.com/blo…
上面这一段是阮一峰老师的讲解。
https://segmentfault.com/a/11…
详情就是边城大佬的透彻讲解