Как исправить бесконечность, пока l oop при попытке получить пакет твитов с помощью Twit - PullRequest
1 голос
/ 10 июля 2020

Я использую пакет Twit npm для извлечения твитов из пользовательской временной шкалы. Чтобы получить несколько пакетов твитов, вам нужно изменить max_id параметров на Twitter API. Я просто тестирую, чтобы мой while l oop работал, но он бесконечен, потому что я не знаю, как ждать, пока функция get завершит sh.

const twitParams = {
        screen_name: username,
        exclude_replies: false,
        include_rts: false,
        trim_user: true,
        count: 200
    };

const allTweetsText = [];

while (allTweetsText.length <= 500) {
    twitClient.get("statuses/user_timeline", twitParams, (error, tweets, res) => {
        for (tweet of tweets) {
            allTweetsText.push(tweet.text);
            console.log(allTweetsText.length);
        }
    });
}

Я никогда не нажимал консольный журнал, потому что он возвращается в начало l oop, чтобы снова проверить условие, которое никогда не изменяется, что приводит к бесконечному l oop. Как я могу это исправить, чтобы функция get завершилась перед повторной проверкой условия?

1 Ответ

1 голос
/ 10 июля 2020

попробуйте использовать синтаксис async / await

async function(){
const twitParams = {
        screen_name: username,
        exclude_replies: false,
        include_rts: false,
        trim_user: true,
        count: 200
};

const allTweetsText = [];

while (allTweetsText.length <= 500) {
    const tweets = await twitClient.get("statuses/user_timeline", twitParams);
    
    for (tweet of tweets) {
        allTweetsText.push(tweet.text);
        console.log(allTweetsText.length);
    }
 }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...