小编spo*_*man的帖子

尽管使用 Node12.x 在 AWS Lambda 上尝试捕获,但未处理的承诺拒绝

我有一个从 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 后,此情况才开始出现。

asynchronous node.js promise aws-lambda

2
推荐指数
1
解决办法
2915
查看次数

标签 统计

asynchronous ×1

aws-lambda ×1

node.js ×1

promise ×1