поток твиттера nodejs Аргумент «слушатель» должен иметь тип Function

#javascript #node.js #twitter #async-await

#javascript #node.js #Twitter #async-await

Вопрос:

Я пытаюсь получить данные потока Twitter, используя nodejs и twit package .

Вот код, который я нашел в учебнике:

 var stream = T.stream('statuses/filter', { track: 'vscode' });

stream.on('tweet', function (tweet) {
    console.log(tweet);
});
  

Вот что я попробовал в качестве его эквивалента в async-await формате:

 private streamPublicTweets = async (request:Request, response:Response)=>{    
    const stream: any = await this.T.stream('statuses/filter', { track: 'vscode' });
    const data = await stream.on('tweet');
    console.log(data)
}
  

Я получаю эту ошибку, которая очень ожидаема.

 UnhandledPromiseRejectionWarning: TypeError [ERR_INVALID_ARG_TYPE]: The "listener" argument must be of type Function. Received type undefined
  

Как мне исправить эту проблему в моем коде?

Комментарии:

1. вы не можете ожидать только того, что является асинхронным…. вы можете ожидать обещания — ни одна из функций, которые вы await возвращаете, не возвращает обещания — и в первом примере кода будет регистрироваться любой твит (1 или более), код, который вы пытались, если бы это было возможно, был бы только консольным. запишите первый твит

2. Ошибка связана с тем, что .on должно быть как минимум два аргумента: «событие» и функция слушателя — вы не можете предоставить функцию слушателя, следовательно, это undefined и, следовательно, ошибка — честно говоря, не все можно превратить в обещания — и это один из примеров того, чтоОбещания не соответствуют цели