以下のコードは、つぶやきとツイッターのデータを正常に返します。私の質問は今、sortTweets()で指定されたものなど、 。私が今直面している主な問題は、Twitter APIとJSの非同期性のために、getTweets()が必要なデータを返すまで待機する関数を指定する方法がわからないことです。つぶやき、ユーザーなどにこれを伝えるのが最も良い方法ですか、それともhandleTweets()関数内のつぶやきを整理する方が簡単でしょうか?twitterをソートして処理する最良の方法 - Twitter API
var Twit = require('twit');
var client = new Twit({
consumer_key: '',
consumer_secret: '',
access_token: '',
access_token_secret: '',
timeout_ms: 60*1000,
});
var count = 10,
profile = 'manutd',
date = '2011-11-11',
keyword = 'man city',
lan = 'en',
search = keyword + " since:" + date + " lang:" + lan;
var tweets = getTweets();
var profiles = getProfile();
console.log('Started')
//var sortedTweets = sortTweets(tweets);
//console.log(sortedTweets)
function handleTweets(err, data){
if (err) {
console.error('Get error', err)
}
else {
console.log('Get Tweets');
//console.log(data);
console.log('Finished');
}
}
function handleFriends(err, data){
if (err) {
console.error('Get error', err)
}
else {
console.log('Get Friends');
//console.log(data);
console.log('Finished');
}
}
function sortTweets (err, data, response) {
if (err) {
console.error('Get error', err)
}
else if (getTweets.ready){
for (var indx in data.statuses){
var tweet = data.statuses[indx];
console.log('on: ' + tweet.created_at + ' : @' + tweet.user.screen_name + ' : ' + tweet.text+'\n\n');
}
}
else {
setTimeout(sortTweets,100);
}
}
function getTweets(){
return client.get('search/tweets', { q: search, count: count, from: profile },
handleTweets)
}
function getProfile(callback){
return client.get('friends/list', { screen_name: profile, count: count },
handleFriends)
}
私は間違いなくそれを読んでいただきありがとうございます。 sortTweets()のelse ifセクションを取ってhandleTweets()に組み込むことは可能ですか? – user4357505
提案と回答が更新されました –
素晴らしい作品です。ありがとうございました! – user4357505