Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AWS Lambda:在节点运行时使用异步处理程序函数有好处吗?_Javascript_Node.js_Amazon Web Services_Asynchronous_Aws Lambda - Fatal编程技术网

Javascript AWS Lambda:在节点运行时使用异步处理程序函数有好处吗?

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还处理同步函数和异步函数异步意味着两

我正在使用Node.js Lambda函数创建一个AWS SAM应用程序。默认模板具有异步处理程序函数:

exports.lambdaHandler=async(事件、上下文)=>{
// ...
返回{
状态代码:200,
正文:JSON.stringify({hello:“world”})
};
};

由于我的理解是,每次调用Lambda函数时,它都会与其他实例分开运行,因此将此处理程序函数设置为
async
vs
sync
,有什么好处吗?

AWS Lambda还处理同步函数和异步函数<代码>异步意味着两件事:

  • 函数返回一个
    承诺
  • 您可以在其中使用
    wait
AWS Lambda碰巧将承诺理解为返回值,这就是为什么
async
函数也可以工作的原因。因此,如果您需要
等待
,只需选择
异步


您也不能将函数声明为
async
return
a
Promise
(或承诺链)

AWS Lambda同时处理同步函数和异步函数<代码>异步意味着两件事:

  • 函数返回一个
    承诺
  • 您可以在其中使用
    wait
AWS Lambda碰巧将承诺理解为返回值,这就是为什么
async
函数也可以工作的原因。因此,如果您需要
等待
,只需选择
异步


如果要使用return和throw分别从函数处理程序发送响应或错误,也不能将函数声明为
async
return
a
Promise
(或承诺链)

使用异步处理程序函数

您可以使用非异步处理程序,但它仅在事件循环为空或函数超时时终止函数执行


ref:

如果要使用return和throw分别从函数处理程序发送响应或错误,请使用异步处理程序函数

您可以使用非异步处理程序,但它仅在事件循环为空或函数超时时终止函数执行


ref:

async
允许您在函数体中使用
wait
。如果您没有使用
await
,那么使用
async
async
几乎没有理由允许您在函数体中使用
await
。如果您没有使用
wait
,那么就没有什么理由使用
async