事件处理程序在Meteor中调用包装的异步函数

时间:2014-09-08 10:38:11

标签: javascript node.js asynchronous meteor event-handling

使用

var twitPost = Meteor._wrapAsync(twit.post.bind(twit));

function process(screen_name)
{
  twitGet('users/show', {'screen_name': screen_name});
}

对进程的同步调用(“screen_name”)工作正常,但

  stream.on('tweet', function(tweet)
  {
    process(tweet.user.screen_name);
  });

收益Error: Meteor code must always run within a Fiber. Try wrapping callbacks that you pass to non-Meteor libraries with Meteor.bindEnvironment.

任何想法如何/如果我可以使这项工作?我想通过一些处理函数去做除了调用twitPost之外的其他东西。

1 个答案:

答案 0 :(得分:1)

在编写本文时,使用Meteor代码的方法(特别是访问集合的方法)需要使用光纤进行封装。一种方法是使用Meteor.bindEnvironment

stream.on('tweet', Meteor.bindEnvironment(function(tweet) {
  process(tweet.user.screen_name);
}));