【问题标题】:Node Unhandled Promise Rejection节点未处理的承诺拒绝
【发布时间】:2018-06-11 17:40:17
【问题描述】:

我不知道为什么我收到以下未处理的承诺拒绝警告:

if (cacheDb === null) {
    cacheDb = await MongoClient.connect(mongoUri)
        .then(client => client.db(mongoDb)
        .catch(err => throw new Error(err))
}

我也尝试将其包装在 try&catch 中。

if (cacheDb === null) {
    try {
        cacheDb = await MongoClient.connect(mongoUri)
        cacheDb = cacheDb.db(mongoDb)
    } catch (err) {
        throw err
    }
}

主要功能是带有节点 v8.10.0 的异步 aws lambda 处理程序。

【问题讨论】:

  • 你意识到 try catch 什么都不做?您正在捕获错误,然后立即重新抛出。
  • 我正在做一些记录,然后在实际代码中抛出错误。如果我误解了你的意思,你能解释一下吗?
  • 您正在使用 catch 处理,然后抛出相同的异常,对于这个承诺仍未处理。未处理,因为没有更多的承诺让它冒泡并寻找它catch
  • 我明白了。谢谢你为我解释。我如何将错误返回给 aws lambda?

标签: node.js aws-lambda


【解决方案1】:

试试这个:

if (cacheDb === null) {
    try {
        cacheDb = await MongoClient.connect(mongoUri)
        cacheDb = cacheDb.db(mongoDb)
    } catch (err) {
        throw new Error(err);
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-31
    • 2023-03-17
    相关资源
    最近更新 更多