Я думаю, что лямбда-документы AWS вводят в заблуждение, но я сначала хотел проверить здесь.
Их документ https://docs.aws.amazon.com/lambda/latest/dg/nodejs-prog-model-handler.html гласит: «Если ваш код выполняет асинхронную задачу, верните обещание, чтобы убедиться, чточто он заканчивает работу. "И все их примеры кода демонстрируют возвращение обещания напрямую.Кажется, это указывает на то, что следующее будет неверным:
exports.handler = async (event) => {
const data = await somePromise();
return data;
};
Но на самом деле это прекрасно работает.Я чувствую, что их документ полностью пропускает точку асинхронности / ожидания - если вы собираетесь вернуть обещание, тогда вам на самом деле не нужно помечать свою функцию как асинхронную, верно?
Редактировать: Что яищу прямой ответ на вопрос о том, является ли конкретное утверждение «Если ваш код выполняет асинхронную задачу, верните обещание, чтобы убедиться, что он завершает работу».это неверно.Я довольно уверен в ответе, но хотел получить подтверждение от эксперта по javascript, чтобы я мог включить этот пост SO, если я свяжусь с AWS, чтобы обновить документ.Я чувствую, что это довольно важно, учитывая, что Lambda позволяет многим новичкам JS легко запускать код JS, и поэтому совет / шаблон, который они дают, должен быть лучше.