【发布时间】:2019-05-14 23:50:42
【问题描述】:
我正在尝试使用 Twitter for Node 向 Twitter 发出请求,并将响应存储在一个数组中以供以后处理。我将返回的推文推送到一个数组,每个push() 都发生在回调中,这似乎工作正常。 我的问题是我无法访问包含所有推送推文的完整数组。
当然,原因是任何使用该数组的尝试都会在 Twitter API 的结果到达之前被调用,所以我得到一个空数组。
我怎样才能(并且应该)让我的函数与整个数组一起工作到另一个回调中?我是从仍然试图牢牢掌握异步编程的人的角度来问这个问题的——尤其是必须异步运行的多个回调或函数。
同样,当前结果是tweetHold = [],我希望tweetHold 包含searchArray 中所有用户的所有匹配推文。
let searchArray = {
users: ['ByBuddha', 'thetweetofgod']
}
let tweetHold = [];
let T = new Twitter(config);
for (user of searchArray.users) {
let params = {
q: 'from:'+ user,
count: 1,
tweet_mode: 'extended',
result_type: 'recent',
lang: 'en'
}
T.get('search/tweets', params, returnedTweets);
}
function returnedTweets(err, tweets, response) {
tweetHold.push(tweets);
}
// obviously, doesn't work as the array is logged to console before T.get() is done
console.log(tweetHold);
【问题讨论】:
标签: node.js asynchronous twitter callback