0
私は、2つの日付の間にTwitterユーザーのつぶやきをカウントするNodeJSアプリケーションに取り組んでいます。私はTwitter APIで指定された最大200カウント未満の日付を扱っています。しかし、私はAPI再帰呼び出しを2回実行することに問題があります。複数の呼び出しを行うことで200を超えることができます。Twitter APIを使用したノード関数の再帰
module.exports = function (user, start, end, callback) {
var Twitter = require('twitter');
var client = new Twitter({
// keys
});
var max_id = null;
getTweets(start, user, max_id, t => {
/*
* DO STUFF (set up dates, calculate, and filter t to dates between start and end
*/
callback({
user: user,
tweets: t.length,
startdate: start.toLocaleDateString(),
enddate: end.toLocaleDateString(),
totaldays: totaldays,
average: average
});
}); // End getTweets call
function getTweets(s, u, m, cb) {
var options = {
screen_name: u,
count: 200,
result_type: "recent",
trim_user: 1,
include_rts: 1
};
if (m != null) options.max_id = m;
client.get('statuses/user_timeline', options, (e,t,r) => {
if (e) console.error(e);
var oldest = t[t.length - 1];
console.log(oldest.created_at + " | " + s);
if (new Date(oldest.created_at) > new Date(s)) {
console.log("recursing...");
getTweets(s, u, oldest.id, x => t = t.concat(x));
} else {
console.log("Got tweets, executing callback");
cb(t);
}
});
} // End getTweets function
} // End module.exports function
<のつぶやきで日付を入力すると、正常に動作します。私はしかし、再帰条件にヒットすると、それがハングし、コンソールが表示さ:
Tue Aug 15 19:14:31 +0000 2017 | 2017-08-08
recursing...
Thu Jul 27 20:44:54 +0000 2017 | 2017-08-08
Got tweets, executing callback
しかし何もありません、それだけでハングします。何が起きてる?