【问题标题】:How to access koa context in another generator function?如何在另一个生成器函数中访问 koa 上下文?
【发布时间】:2014-12-25 22:35:21
【问题描述】:

在 Koa 中,我可以通过 this 访问第一个生成器函数中的 Koa 上下文:

app.use(function *(){
    this; // is the Context
}

但如果我屈服于另一个生成器函数,我将无法再通过this 访问上下文。

app.use(function *(){
    yield myGenerator();
}

function* myGenerator() {
    this.request; // is undefined
}

我已经能够简单地将上下文传递给第二个生成器函数,但想知道是否有更简洁的方法来访问上下文。

有什么想法吗?

【问题讨论】:

    标签: node.js koa


    【解决方案1】:

    如您所说,要么将this 作为参数传递:

    app.use(function *(){
        yield myGenerator(this);
    });
    
    function *myGenerator(context) {
        context.request;
    }
    

    或使用apply():

    app.use(function *(){
        yield myGenerator.apply(this);
    });
    
    function *myGenerator() {
        this.request;
    }
    

    【讨论】:

    • 像魅力一样工作。干杯维尼修斯!
    • 如果我的生成器函数有其他我想传入的参数怎么办?
    猜你喜欢
    • 2020-09-12
    • 1970-01-01
    • 2014-05-31
    • 1970-01-01
    • 2015-07-03
    • 2015-10-11
    • 2017-12-16
    • 2020-05-01
    • 1970-01-01
    相关资源
    最近更新 更多