对 koa 的理解源于一次 node 群的讨论。
官网例子:
var koa = require("koa") |
执行方式为 遇到 yield 跳入下一个 中间件,当执行到最后一个中间件,逆向执行回去。(一进一出回形针)
上图增强理解:
下面的 generator 被上面的调用形成嵌套
当执行到 yield ,则继续向下嵌套。
到下面没有中间件的时候,则最内层的 generator 结束。然后继续执行外层 generator
每层都执行到当前 generator 结束,直到最外层(第一个中间件 generator)的结束
下面为进出的核心代码
koa-compose
/** |