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...
详情就是边城大佬的透彻讲解