KOA入门(一)

109 阅读2分钟

基础知识准备

异步的实现方式及其相关概念
  • asyncGenerator的语法糖

  • PromiseGenerator的关系:

    • Promise

      • Promise目前为止,以微任务的形式出现在面试题和文档中。在事件流中扮演微任务的角色,回调函数的执行时间与当前执行栈中的宏任务数量相关。
      • Promise 是一个内置对象。类似于Array等,是语言本身的一种对象类型,用到的时候需要 new Promise().
    • Generator

      • Generator是一种概念,是对于函数的一种扩充,拥有普通函数所没有的特性.
      • Generator函数返回一个指向内部的状态机,而不是执行结果,执行的最后结果需要调用执行器,利用执行器不停的调用next()直到流程结束才会得到最终值
      • 调用方式与普通函数一致
      • 定义方式与普通函数不同,需要函数名和function关键字之间有一个*表示当前函数为一个Generator函数
  • asyncGenerator改造的地方

    • async将*变成了asyncyeild变成了await

    • async内置了执行器:

      • Generator执行必须依靠执行器,调用Generator函数返回执行器,用执行器进行流程控制
      • async不需要执行器,会自动执行
      • async返回一个Promise,执行器返回的是一个具体的结果,返回值由Generatorreturn语句的返回值决定
KOA和异步的关系
  • KOA是一个WEB框架,js的异步方案主要是:回调、PromiseGenerator三大方式。
  • KOA通过组合Generator来减少web中的回调,以避免回调地狱问题,减少开发的复杂。 KOA use可以在请求处理之前修改request,返回response之前修改response