我有一个从 AWS Lambda 内部调用其他 AWS Lambda 的承诺列表:
promiseArray.push(lambda.invoke(params).promise())
Run Code Online (Sandbox Code Playgroud)
在另一个函数中,我迭代这些承诺并尝试解决它们:
for (let i = 0; i < promiseArray.length; i++) {
try {
let result = await promiseArray[i];
console.log("Success!");
} catch (e) {
console.log("Failed!");
}
}
Run Code Online (Sandbox Code Playgroud)
这是我面临的问题。通常,调用会抛出一个 TimeoutError,该错误不会被 try-catch 块捕获,并通过抛出“未处理的 Promise Rejection”错误来终止 Lambda 执行。请注意,只有在我们在 Lambda 上从 Node 8.10 升级到 12.x 后,此情况才开始出现。