异步函数(async/await)的原理

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) {
   
  <
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值