我仍然对 ES6 生成器的一些优点感到困惑。如何,
app.use(function *(next){
var start = new Date;
yield next;
var ms = new Date - start;
this.set('X-Response-Time', ms + 'ms');
});
与类似的东西相比,
app.use(function (next, ctx) {
var start = new Date;
next(ctx);
var ms = new Date - start;
ctx.set('X-Response-Time', ms + 'ms');
});
是什么让生成器对于像 Koa 这样的东西如此特别?这就是 Koa.js 对生成器的看法,
对比 Connect 的实现,它只是通过一系列函数传递控制直到一个返回,Koa 产生“下游”,然后控制流回到“上游”。
这不是我上面的伪代码所做的吗?