RxJS node-oauth 简单获取请求失败

RxJS node-oauth simple get request fails

处理一个简单的(相对)RxJS demo/test 代码,该代码发出一个 Twitter Api 调用和一个 MongoDB 请求并将它们压缩到一个单独的可观察对象中。

要进行 Twitter Api 调用,您需要通过 Oauth 进行身份验证。我找到了 node-oauth 库来验证节点请求:

var oauth = new OAuth.OAuth(
    'https://api.twitter.com/oauth/request_token',
    'https://api.twitter.com/oauth/access_token',
    'key',
    'secret',
    '1.0A',
    null,
   'HMAC-SHA1'
);

然后我用 Oauth get 方法创建一个新的 Observable 以从 Twitter 获取位置:

var twitterStream = Rx.Observable.fromNodeCallback(oauth.get)('https://api.twitter.com/1.1/trends/place.json?id=23424977',
    'access-token',
    'token');

来自 MongoDB 的另一个流:

Rx.Node.fromStream(Order.find().stream());

压缩它们的最后一步:

var getNewList = Rx.Observable
    .zip(flickrStream, orderStream, function(user, order) {
        return {user: user, order: order};
    });

getNewList.subscribe(function(response) {
    // render `response`
    console.log(response);
});

尽管当我通过 Node 执行代码时,代码对我来说似乎没问题,但以下消息会打印到控制台:

TypeError: Object #<Object> has no method '_performSecureRequest'
at exports.OAuth.get (/.../node_modules/oauth/lib/oauth.js:487:15)
at /.../node_modules/rx/dist/rx.all.js:5504:14

我可能做了某事。使用 Twitter 请求创建新的 Observable 时出错。此外;我已经在没有 RxJS 和 MongoDB 查询的情况下进行 Twitter 调用时单独测试了代码,并且这些代码没有任何问题。同样将 fromNodeCallback 更改为 fromCallback 也没有任何区别。

提供 context 参数(参见 documentation)或绑定 get 的上下文:

Rx.Observable.fromNodeCallback(oauth.get.bind(oauth))

Rx.Observable.fromNodeCallback(oauth.get, oauth)