Javascript AWS Lambda:在节点运行时使用异步处理程序函数有好处吗?
我正在使用Node.js Lambda函数创建一个AWS SAM应用程序。默认模板具有异步处理程序函数:Javascript AWS Lambda:在节点运行时使用异步处理程序函数有好处吗?,javascript,node.js,amazon-web-services,asynchronous,aws-lambda,Javascript,Node.js,Amazon Web Services,Asynchronous,Aws Lambda,我正在使用Node.js Lambda函数创建一个AWS SAM应用程序。默认模板具有异步处理程序函数: exports.lambdaHandler=async(事件、上下文)=>{ // ... 返回{ 状态代码:200, 正文:JSON.stringify({hello:“world”}) }; }; 由于我的理解是,每次调用Lambda函数时,它都会与其他实例分开运行,因此将此处理程序函数设置为asyncvssync,有什么好处吗?AWS Lambda还处理同步函数和异步函数异步意味着两
exports.lambdaHandler=async(事件、上下文)=>{
// ...
返回{
状态代码:200,
正文:JSON.stringify({hello:“world”})
};
};
由于我的理解是,每次调用Lambda函数时,它都会与其他实例分开运行,因此将此处理程序函数设置为
async
vssync
,有什么好处吗?AWS Lambda还处理同步函数和异步函数<代码>异步意味着两件事:
- 函数返回一个
承诺
- 您可以在其中使用
wait
async
函数也可以工作的原因。因此,如果您需要等待
,只需选择异步
您也不能将函数声明为
async
和return
aPromise
(或承诺链)AWS Lambda同时处理同步函数和异步函数<代码>异步意味着两件事:
- 函数返回一个
承诺
- 您可以在其中使用
wait
async
函数也可以工作的原因。因此,如果您需要等待
,只需选择异步
如果要使用return和throw分别从函数处理程序发送响应或错误,也不能将函数声明为
async
和return
aPromise
(或承诺链)使用异步处理程序函数
您可以使用非异步处理程序,但它仅在事件循环为空或函数超时时终止函数执行
ref:如果要使用return和throw分别从函数处理程序发送响应或错误,请使用异步处理程序函数 您可以使用非异步处理程序,但它仅在事件循环为空或函数超时时终止函数执行
ref:
async
允许您在函数体中使用wait
。如果您没有使用await
,那么使用async
async
几乎没有理由允许您在函数体中使用await
。如果您没有使用wait
,那么就没有什么理由使用async
。