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

本文介绍了Generator和async/await的概念及原理。Generator通过yield暂停执行并允许外部系统传递值或抛出异常。async函数是Generator的语法糖,内置执行器,返回Promise对象。利用Generator可以实现async函数,当内部所有异步操作都完成后,返回Promise的状态才会变为fulfilled。
摘要由CSDN通过智能技术生成

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) {
   
  <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值
>