UnhandledPromiseRejectionWarning
异步等待承诺
我有这段代码:
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();
结果是:
(节点:14843)UnhandledPromiseRejectionWarning:未处理的承诺拒绝(拒绝 ID:1):false
(节点:14843)[DEP0018] DeprecationWarning:未处理的承诺拒绝已弃用。将来,未处理的承诺拒绝将以非零退出代码终止 Node.js 进程。
注意:我知道我可以这样解决这个问题:
foo().then(() => {}).catch(() => {});
但随后我们“回到”回调异步风格。
我们如何解决这个问题?
原文由 Raz Buchnik 发布,翻译遵循 CC BY-SA 4.0 许可协议
将您的代码包装在
try-catch
块中。