我目前正在构建Twitter应用程序,因为特定功能需要两个月才能遇到问题。
这就是我想要做的:显示用户Twitter列表中的推文,并使用新推文刷新它们。 Twitter提供流API以立即获取新推文。但是,要获取列表的推文,Twitter API只允许我通过REST API而不是流API。
我的想法是定期进行REST API调用,比较新推文,然后将每条新推文添加到界面“就好像它是真正的流”。
为此,我已经完成了下面的功能来比较一个对象数组。我正在检查每个推文ID以进行比较。测试已经完成并且都已通过。
不幸的是,我的应用程序表现得很笨拙并且不断添加推文,即使它们在当前和传入的推文之间没有差异。 所以,也许问题来自其他地方,但我认为这不是提交代码页面以帮助我解决问题的地方。 (但如果你有兴趣,我可以分享代码)。
所以这是我的问题:我做得对吗,还是你看到了我想做的更好的解决方案?
/**
* Return the difference between the current messages in the array and the incoming
* @param {Array} incoming Array of incoming tweets
* @return {Array} current Array of current tweets
*/
MessagesDisplay.prototype.compareCurrentListWithIncoming = function(incoming, current){
// Return the elements not present in the array
Array.prototype.diff = function(a) {
return this.filter(function(array) {
var exist = false;
for (var i = 0; i < a.length; i++) {
if(array.id_str === a[i].id_str){
exist = true;
}
};
if(!exist){
return array;
}
});
};
var messagesToAdd = [];
messagesToAdd = incoming.diff(current);
return {
messagesToAdd: messagesToAdd,
};
}