共计 739 个字符,预计需要花费 2 分钟才能阅读完成。
含意
ES2017 规范引入了 async
函数,使得异步操作变得更加不便。
async
函数是什么?一句话,它就是 Generator 函数的语法糖。
前文有一个 Generator 函数,顺次读取两个文件。
读取文件进行解决,是这样写的。
const readFile = function (fileName) {return new Promise(function (resolve, reject) {fs.readFile(fileName, function(error, data) {if (error) return reject(error);
resolve(data);
});
});
};
const gen = function* () {const f1 = yield readFile('/etc/fstab');
const f2 = yield readFile('/etc/shells');
console.log(f1.toString());
console.log(f2.toString());
};
下面代码的函数 gen 能够写成 async
函数,就是上面这样。
const asyncReadFile = async function () {const f1 = await readFile('/etc/fstab');
const f2 = await readFile('/etc/shells');
console.log(f1.toString());
console.log(f2.toString());
};
一比拟就会发现,async
函数就是将 Generator 函数的星号(*)替换成 async
,将 yield 替换成 await
,仅此而已。
async
函数对 Generator 函数的改良,体现在以下四点。
具体的四点内容
ES6 教程
TypeScript 教程
正文完
发表至: javascript
2020-07-13