为什么功能在Twitter完成呼叫之前完成运行? (蠢)

时间:2017-07-01 02:53:43

标签: javascript twitter npm

所以,我正在使用Twit包来使用Twitter API,而且我有一个功能可以检查重复的推文:

function checkDuplicate(tweet){
  var isDuplicate = false;
  var params = {
    screen_name: "reddevilsbot",
    count: 1
  }
  T.get('statuses/user_timeline', params, function (err, data, response){
    for(var j = 0; j < 1; j++){

      console.log('data: ', data[j].text.substring(0, 10));
      console.log('tweet: ', tweet.substring(0,10));
      console.log(data[j].text.substring(0, 10) == tweet.substring(0,10));

      if(data[j].text.substring(0, 10) == tweet.substring(0,10)){
        console.log('Im here');
        isDuplicate = true;
        break;
      }
    }
  });
  return isDuplicate;
}

如果你不熟悉Twitter API,我在这里做的是在params变量中调用我自己的twitter句柄,然后在特定用户下调用get for status。然后给我一个数据对象,在这种情况下只返回一条推文。

所以,为了测试,我只检查最新的推文(因此,为什么count被设置为1),我将推文传递给checkDuplicate(),这与我正在比较的那个。我有五个日志到控制台。第一个是在函数之外,它记录了checkDuplicate()的结果,其余的显示在上面。控制台的结果如下所示。

    false
    data:  "Antonio V
    tweet:  "Antonio V
    true
    Im here

看到这一点让我得出结论checkDuplicate()isDuplicate通话结束前返回get。这是真的?如果是,请问如何确保checkDuplicate()等待get来电完成?

由于

0 个答案:

没有答案