在Koa中,我可以通过this
在第一个生成器函数中访问Koa Context:
app.use(function *(){
this; // is the Context
}
但如果我屈服于另一个生成器函数,我就无法通过this
访问上下文了。
app.use(function *(){
yield myGenerator();
}
function* myGenerator() {
this.request; // is undefined
}
我已经能够简单地将上下文传递给第二个生成器函数,但是想知道是否有更简洁的方法来访问上下文。
有什么想法吗?
答案 0 :(得分:12)
如你所说,将this
作为参数传递:
app.use(function *(){
yield myGenerator(this);
});
function *myGenerator(context) {
context.request;
}
或使用apply()
:
app.use(function *(){
yield myGenerator.apply(this);
});
function *myGenerator() {
this.request;
}