Javascript Can';不要拒绝承诺
这不会捕获错误,它仍然被视为“未处理的弹出”。为什么?如果调用的是Javascript Can';不要拒绝承诺,javascript,node.js,Javascript,Node.js,这不会捕获错误,它仍然被视为“未处理的弹出”。为什么?如果调用的是异步函数,或是返回承诺的函数,则需要正确排序: 异步函数sendPushNotification(订阅,urlEncodedData){ 试一试{ 等待webpush.sendNotification(订阅,urlEncodedData); }捕捉(错误){ console.log('err'); 控制台日志(err); } } 此处wait将捕获任何响应。将显示为异常的错误条件 请注意,这会使sendPushNotificat
异步
函数,或是返回承诺的函数,则需要正确排序:
异步函数sendPushNotification(订阅,urlEncodedData){
试一试{
等待webpush.sendNotification(订阅,urlEncodedData);
}捕捉(错误){
console.log('err');
控制台日志(err);
}
}
此处wait
将捕获任何响应。将显示为异常的错误条件
请注意,这会使sendPushNotification()
返回一个Promise
,因此您必须将其视为异步的。这意味着呼叫方也需要等待
,这可能会对呼叫链产生影响,具体取决于您的排序要求。您不需要等待吗?关于webpush还有其他的细节吗?太残酷了,谢谢你的帮助,我永远也想不到。如果你习惯于像大多数其他语言一样阻塞代码(同步),那么围绕JavaScript异步编码风格绞尽脑汁可能有点麻烦,所以不要为此自责。你们真的很接近。我通常在JS中使用async/await,但我以前从未见过这种情况。
function sendPushNotification(subscription, urlEncodedData){
try {
webpush.sendNotification(subscription, urlEncodedData);
} catch (err){
console.log('err');
console.log(err);
}
}