我正在使用第3个parth库在我的nodejs后端代码中进行异步调用。这个电话有一个未处理的承诺拒绝,我很难抓住。 (它关闭了我的节点应用程序。)
根据传递的输入,有时会失败:
exports.getSomeData = (input) => {
console.log('GETTING DATA...')
return ThirdPartyLib.makeAsyncCall(input).then((result) => {
console.log('SUCCESS');
return result;
},(rejection) => {
console.log('REJECTED');
return {};
}).catch(error => {
console.log('ERROR');
return {};
});
}
但是REJECTED
/ ERROR
消息在失败时均不会打印。我刚刚从lib中看到一条控制台消息:Unhandled rejection at: Promise
,我的应用程序关闭了。
我在处理不愉快的道路时是否缺少任何东西?
库代码是否有可能做上述无法捕捉的事情?
答案 0 :(得分:2)
库代码是否有可能做上述无法捕捉的事情?
当然,它只需要创建一个Promise(例如,通过调用异步函数),而无需将其链接到Promise链中(也就是没有<div>a1</div>
<div>a2</div>
<div>a3</div>
<div>a4</div>
<div>a5</div>
<div>a6</div>
链接到它):
await
所以是的,您正在使用的库应该等待分离的Promise,或者应该向其附加错误处理程序(并处理/故意忽略该错误)。这不是你的错。
答案 1 :(得分:1)
除了双重拒绝处理程序(毫无意义,只需使用catch()
)之外,您的代码也应该可以使用。
因此,如果您看到该错误,则意味着您使用的库存在错误。