Я нахожусь в процессе преобразования некоторых базовых скриптов узла в функции Lambda.Один из скриптов использует Twitter SDK для получения некоторых твитов.По сути, это пример того, как вызывать API с помощью базовой котельной AWS Lambda.Если вы запустите это, обратный вызов не сработает, и он в основном пропустит функцию twitter.get.Однако, если вы удалите асинхронную функцию из функции exports.handler, она сработает, как и следовало ожидать.
Я думал, что понял асинхронное ожидание, но почему это предотвращает обратные вызовы?Возможно, twitter SDK распознает, когда это асинхронная функция, и возвращает обещание?
const Twitter = require('twitter');
exports.handler = async (event, context, callback) => {
console.log("The function started") // this line gets logged
const twitter = new Twitter({
consumer_key: process.env.consumer_key,
consumer_secret: process.env.consumer_secret,
access_token_key: process.env.access_token_key,
access_token_secret: process.env.access_token_secret
});
const params = {
screen_name: 'xxxx',
count: 10,
tweet_mode: 'extended'
};
const twitterEndpoint = 'statuses/user_timeline.json';
twitter.get(twitterEndpoint, params, function(error, tweets, response) { //this doesn't...
console.log("TWEETS", tweets, "ERROR", error, "RESPONSE", response) // this line does not log out
if (!error) {
console.log(tweets)
}else{
console.log(error, "There was an error calling twitter!")
}
});
}