如何使用Fiber访问原始上下文

时间:2015-12-14 09:03:16

标签: javascript meteor

我想使用异步第三方lib调用并获得结果。 所以我将回调方法包装在Meteor.bindEnvironment中,因为流星代码必须始终在光纤内运行:

server(Meteor.bindEnvironment(function (device) {
  device.on('foo', Meteor.bindEnvironment(function (data) {
    var someVar = this.getSomeVar();
    MyCollection.insert(someVar, data);
  }));
}));

但是当我使用这种方法时,我无法访问回调的原始上下文 函数,所以this.getSomeVar总是未定义的。

为了防止这种情况,我直接使用Fiber,看起来很有效。但我不确定 如果它可靠:

server(function (device) {
  device.on('foo', (data) {
    var someVar = this.getSomeVar();
    Fiber(function() {
      MyCollection.insert(someVar, data);
    }).run();
  });
});

这种方式会有一些副作用吗?

0 个答案:

没有答案