Abruzzi's Wall

Front-End Web Developer

Ghost only can help me to here...


Tag: yield


  1. 如何理解koa中间件执行机制

    前几天研究了TJ的koa/co4.x和一系列koa依赖的源码,在知乎上做出了人生首次回答(而且我真得再也不想去知乎回答技术问题了_(:з」∠)_),因此把文字搬到这里。 ES2015 Generator/Yield 关于Generator/Yield 这几篇文章已经写得足够清晰了: The Basics Of ES6 Generators Diving Deeper With ES6 Generators Going Async With ES6 Generators Getting Concurrent With ES6 Generators Koa的运行机制 简单地画了一张图解释koa的处理流程(右键在新标签页中打开图片吧。。。懒): 在koa里定义的middleware均为generator function(包括内置在顶端的respond),这是为了能从任意middleware中容易地切换到其它middleware里(如果你是前端程序员,可以理解为浏览器捕获事件的capture和propagation过程,如果你是python程序员,可以理解为jungle的middleware机制,如果你是Java程序员,这种方式则是典型的切面编程)。 为了实现这种横穿多个middleware的特性,koa通过把后一个generator作为参数(koa里常用next)…

    koa, co, es6, generator, yield