我认为AWS Lambda文档具有误导性,但我想先在这里检查一下。
他们的文档https://docs.aws.amazon.com/lambda/latest/dg/nodejs-prog-model-handler.html指出:“如果您的代码执行异步任务,请返回一个承诺以确保其完成运行。”他们的代码示例都演示了直接返回承诺。这似乎表明以下情况是不正确的:
exports.handler = async (event) => {
const data = await somePromise();
return data;
};
但是实际上,这很好。我觉得他们的文档完全错过了异步/等待的要点-如果您要返回承诺,那么您实际上不需要将功能标记为异步,对吗?
编辑:我要寻找的是关于“如果您的代码执行异步任务,请返回保证以确保它完成运行”的特定断言的直接答案。是不正确的。我对答案很确定,但想获得javascript专家的确认,因此如果我联系AWS来更新文档,则可以包括此SO帖子。我认为这很重要,因为Lambda可以使许多JS新手轻松地运行JS代码,因此给他们的建议/样板应该更好。