Generator
了解一个异步函数的原理,首先要来看下Generator(具体内容去看文档):
function* fibonacci() {
try{
var a = yield 1;
yield a * 2;
}catch(err){
console.log(err.message);
}
}
var it = fibonacci();
it.next(); // {value: 1, done: false}
it.next(10); // {value: 20, done: false}
it.throw(new Error("saiban")); // saiban
总结一下:
● yield允许一个generator函数暂停执行,并且将恢复执行的权力交给外部系统。
● 外部系统可以将值推入generator函数体。
● 外部系统可以将一个异常抛入generator函数体。
async/await
async 函数是什么?一句话,它就是 Generator 函数的语法糖。
前文有一个 Generator 函数,依次读取两个文件。
const fs = require('fs');
const readFile = function (fileName) {
<