使用
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);
}));