所以,我正在使用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
来电完成?
由于