async其实就是 Generator的语法糖,看本篇文章之前可以先看一下上一篇文章 Generator函数。理解 Generator就容易理解为什么说async是异步编程的完美解决方案了。
目录
async函数
async函数原理
常见的关于async的笔试题
async函数
const fs = require(‘fs’);
const readFile = function (fileName) {
return new Promise(function (resolve, reject) {
fs.readFile(fileName, function(error, data) {
if (error){
return reject(error);
}
resolve(data);
});
});
};
const foo = function* () {
const f1 = yield readFile(’/src/lib’);
const f2 = yield readFile(’/src/utils’);
console.log(f1.toString());
console.log(f2.toString());
};
复制代码把上面代码的Generator函数 foo 可以写成 async 函数,就是这样:
const asyncReadFile = async function () {
const f1 = await readFile(’/src/lib’);
const f2 = await readFile(’/src/utils’);
console.log(f1.toString());