乐趣区

异步编程的最高境界就是根本不用关心它是不是异步笔记

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

退出移动版