gpt4 book ai didi

javascript - 异步等待 promise 上的 UnhandledPromiseRejectionWarning

转载 作者:搜寻专家 更新时间:2023-11-01 00:19:44 25 4
gpt4 key购买 nike

UnhandledPromiseRejectionWarning on async await promise

我有这个代码:

function foo() {
return new Promise((resolve, reject) => {
db.foo.findOne({}, (err, docs) => {
if (err || !docs) return reject();
return resolve();
});
});
}

async function foobar() {
await foo() ? console.log("Have foo") : console.log("Not have foo");
}

foobar();

结果是:

(node:14843) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): false

(node:14843) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

注意:我知道我可以这样解决这个问题:

foo().then(() => {}).catch(() => {});

但随后我们“回到”回调异步风格。

我们如何解决这个问题?

最佳答案

将您的代码包装在 try-catch block 中。

async function foobar() {
try {
await foo() ? console.log("Have foo") : console.log("Not have foo");
}
catch(e) {
console.log('Catch an error: ', e)
}
}

关于javascript - 异步等待 promise 上的 UnhandledPromiseRejectionWarning,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52811197/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com