koa中yield执行顺序问题?

var koa = require('koa');
var app = koa();

app.use(function*(next) {
    this.body = '1';
    yield next;    //下一步是哪一个 generator函数?当前还是下一个gen函数的第一个yield?
    this.body += '5';
    yield next;
    this.body += '6';
    console.log(this.body);
});
app.use(function*(next) {
    this.body += '2';
    yield next;
    this.body += '4';
    yield next;
    this.body += 'x'
});
app.use(function*(next) {
    this.body += '3';
});
app.listen(3000);

首先执行每一个generator函数的第一个yield(一个gen里有多个yield ),等执行到结束后,再返回按generator函数的倒序向上执行,每个generator函数内的yield再按从上到下的顺序执行?这样理解对吗?

这里有先进后出的规则没有?

阅读 4.2k
1 个回答

看图便知~
图片描述

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进