您有错别字:
context.callbackWaitsForEmtpyEventLoop = false;
应该:
context.callbackWaitsForEmptyEventLoop = false;
这是文档中有关
callbackWaitsForEmptyEventLoop 行为的内容:
callbackWaitsForEmptyEventLoop
默认值为
true。此属性仅在修改回调的默认行为时有用。默认情况下,回调将等待,直到Node.js运行时事件循环为空,然后冻结进程并将结果返回给调用方。您可以将此属性设置为false,以要求AWS
Lambda在调用回调后立即冻结进程,即使事件循环中有事件也是如此。AWS
Lambda将冻结进程,Node.js事件循环中的任何状态数据和事件(事件循环中的所有剩余事件将在下次调用Lambda函数且AWS
Lambda选择使用冻结的过程时进行处理)。有关回调的更多信息,请参见使用回调参数。
最小示例:
// Times out due to typoexports.function1 = (event, context, callback) => { setInterval(() => console.log('Long wait'), 100000); context.callbackWaitsForEmtpyEventLoop = false; callback(null, 'Hello from Lambda');};// Returns successfullyexports.function2 = (event, context, callback) => { setInterval(() => console.log('Long wait'), 100000); context.callbackWaitsForEmptyEventLoop = false; callback(null, 'Hello from Lambda');};


