gpt4 book ai didi

javascript - Koa 和 Twitter - "Thunking"不起作用

转载 作者:行者123 更新时间:2023-11-28 19:42:40 26 4
gpt4 key购买 nike

我已经获得了一些第三方异步函数,可以通过 thunking 与 Koa 一起使用,或者通过像这样包装函数:var thunkedFunction = function(params) { return function(callback) { originalFunction(params, callback) }; )或使用节点 thunkify 库。

但是,当我像这样使用 ntwitter 的流尝试此操作时:

var streamThunk = thunkify(tw.stream);
var stream = yield streamThunk("statuses/filter", {track: track});

我收到以下错误:“无法读取未定义的属性stream_base”。

深入研究ntwitter(基于node-twitter)我发现Twitter.prototype.stream函数调用this.options.stream_base,并且this.options是在我正常调用它时定义的,即tw.stream(function(stream) {...});但当我调用该函数时未定义。是否有任何原因导致该函数在 thunk 时失去其作用域,并且有办法避免这种情况吗?

最佳答案

请注意,thunkify 没有看到 tw 对象。因此,按照它的设计方式,它无法知道它所获取的函数 (tw.stream) 的上下文(在您的情况下为 tw)。

thunkify 返回的函数将传递它调用时使用的任何 this 上下文 ( source: node-thunkify/index.js )。

这意味着您应该能够将示例中的第二行更改为:

var stream = yield streamThunk.call(tw, "statuses/filter", {track: track});

Read more about call .

关于javascript - Koa 和 Twitter - "Thunking"不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24786772/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com