作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在 Nodejs 中从 Twitter 检索超过 100 条推文。但是,我不断得到一个空数组。我尝试过这种方法:
const MAX_TWEETS = 200;
const TWEETS_PER_REQUEST = 100;
async function retrieveTweets(T,parameters,tweets_data,request_num){
T.get('search/tweets', parameters, function (error, data){
let lowest_id = null;
let tweets = data.statuses;
for(var i=0;i<tweets.length; i++){
tweets_data[request_num*TWEETS_PER_REQUEST+i] = tweets[i].text;
if(!lowest_id || lowest_id>tweets[i].id){
lowest_id = tweets[i].id;
}
}
parameters.max_id = lowest_id;
});
}
async function twitter(){
var config = require('./config.js');
var Twit = require('twit');
var T = new Twit(config);
var parameters = { q: 'obama', count: TWEETS_PER_REQUEST, result_type: 'recent' };
var tweets_data= new Array(MAX_TWEETS);
await retrieveTweets(T,parameters,tweets_data,0);
await retrieveTweets(T,parameters,tweets_data,1);
console.log(tweets_data);
}
twitter();
我不知道为什么我总是得到一个空数组。任何帮助将不胜感激。
编辑:我确实从 get 请求中获取了结果,但是当我尝试将它们保存在 tweets_data
数组中时,我得到一个空数组,并且结果最终没有保存。
最佳答案
您没有正确处理 promise 。get 请求可以返回一个 promise ,因此不要使用异步,而是将函数更改为
function retrieveTweets(T,parameters){
return T.get('search/tweets', parameters);
}
然后在 Twitter 功能中
await retrieveTweets(T,parameters).then(data => {
// do stuff with result
}.catch(error => {
// do stuff with the error
}.finally(() => {
// finish up
}
关于javascript - 使用nodejs从twitter API检索超过100条推文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58859933/
我想开发一个 Skype 机器人,它将用户名作为输入,并根据用户输入以相反的字符大小写表示hello username。简而言之,如果用户输入他的名字 james,我的机器人会回复他为 Hello J
我是一名优秀的程序员,十分优秀!