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) {
<

本文介绍了Generator和async/await的概念及原理。Generator通过yield暂停执行并允许外部系统传递值或抛出异常。async函数是Generator的语法糖,内置执行器,返回Promise对象。利用Generator可以实现async函数,当内部所有异步操作都完成后,返回Promise的状态才会变为fulfilled。
最低0.47元/天 解锁文章
3万+

被折叠的 条评论
为什么被折叠?



