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



使用

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之外的其他事情。

在编写过程中,使用Meteor代码的方法(尤其是访问Collections的方法)需要用Fiber封装。一种方法是使用Meteor.bindEnvironment:

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

相关内容

  • 没有找到相关文章

最新更新