异步API调用错误

时间:2015-11-28 23:34:06

标签: twitter meteor

我目前正尝试使用meteor调用twitter API,到目前为止我得到了这个:

updateTotalFoll:function(){
var Twit = Meteor.npmRequire('twit');

var T = new Twit({
  consumer_key:  'AWzYAlWFRh9zsownZMg3',
  consumer_secret: 'aYpL3zMPfqRgtX1usPQpEREEXVNPfNYna9FiIwTeDYR',
  access_token:  '4175010201-TEp9qNKO4mvjkj0GMjJFZIbGPYaVv4',
  access_token_secret:  'EPpcJyN27E4PvhJpYaTHflNFOv3DuR05kTP2j'
});

var Id2=RandomCenas.findOne({api:"twitter"})._id;

T.get('statuses/user_timeline', { screen_name: 'jeknowledge' },  function (err, data, response){
  //console.log(data[0].user.followers_count);
  RandomCenas.update(Id2,{$set:{totalFoll:data[0].user.followers_count}});
});

}

使用" RandomCenas"是一个MongoDB。 我想要做的是用来自通话的信息​​更新这个集合,但是我收到了这个错误

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

我已经在网上搜索了解决这个问题的方法,但我似乎无法应用我遇到的解决方案。 对我如何处理这个有任何帮助?

1 个答案:

答案 0 :(得分:0)

尝试就好了

T.get('statuses/user_timeline', { screen_name: 'jeknowledge' },  Meteor.bindEnvironment(function (err, data, response) {
  //console.log(data[0].user.followers_count);
  RandomCenas.update(Id2,{$set:{totalFoll:data[0].user.followers_count}});
}));

发生这种情况的原因是因为您在当前Meteor的光纤之外发生的回调函数检查了答案Error: Meteor code must always run within a Fiber