这个问题可能有点模糊,但我会尽力解释。
我正在尝试创建一个可以从Twitter的API中检索的所有推文的数组,但它将每个请求限制为200条返回的推文。如何以异步方式向Twitter请求最多3200条返回的推文?我的意思是,是否可以异步调用Twitter的API,但是按顺序构建数组,确保推文在日期方面正确排序?
所以,我有一个数组:
var results = [];
我正在使用节点的请求模块:
var request = require('request');
我现在所拥有的(仅限于200)是
request(options, function(err, response, body) {
body = JSON.parse(body);
for (var i = 0; i < body.length; i++) {
results.push(body[i].text);
}
return res.json(results);
});
我调查了可能使用'promise'模块,但理解起来很困惑。我尝试使用while循环,但它变得复杂,因为我无法遵循服务器正在采用的路径。
如果这不能很好地解释,请告诉我。
最后,我希望结果是一个填充了请求发送的所有推文的数组。
答案 0 :(得分:1)
我建议使用request-promise
代替request
。这是我的解决方案。
var rp = require('request-promise');
var tweets = [];
var promises = [];
for (var i =1; i< 10; i++){
var promise = rp(options);
promises.push(promise);
}
Promise.all(promises).then(function(data){
data.forEach(function(item){
// handle tweets here
});
return res.json(tweets);
});