处理未处理的承诺拒绝:onunhandledrejection 和 unhandledrejection 之间的区别
Handling unhandled promise rejections: Difference between onunhandledrejection and unhandledrejection
在 MDN
中,有两个事件会在未处理承诺拒绝时触发。
它们具有相同的兼容性,所以我想知道 onunhandledrejection and unhandledrejection 之间有什么区别?
JavaScript 中几乎每个 window EventListener 都是这种情况。
例如,请参见下面的 keypress-event:
window.addEventListener("keypress", () => console.log("Key pressed!"));
window.onkeypress = () => console.log("Key pressed!");
将 EventListener 附加到 window 元素的两种方法之间的主要区别是:
- 使用“addEventListener()”方法,您将能够为单个事件订阅多个事件侦听器函数。
- 使用'window.onunhandledrejection'-属性你只能给属性分配一个函数,它会被触发在同一事件上。因此,如果您稍后将另一个函数分配给 属性,它将覆盖您的初始分配。
示例:
window.addEventListener("keypress", () => console.log("Key pressed! Listener 1"));
window.addEventListener("keypress", () => console.log("Key pressed! Listener 2"));
window.onkeypress = () => console.log("Key pressed! Listener 3");
window.onkeypress = () => console.log("Key pressed! Listener 4");
// If the user presses any key, the Events will be triggered in the order of assignment.
// The console output would be:
// Key pressed! Listener 1
// Key pressed! Listener 2
// Key pressed! Listener 4
也看看这个很详细的answer,里面解释了两种方法的优缺点!
在 MDN
中,有两个事件会在未处理承诺拒绝时触发。
它们具有相同的兼容性,所以我想知道 onunhandledrejection and unhandledrejection 之间有什么区别?
JavaScript 中几乎每个 window EventListener 都是这种情况。 例如,请参见下面的 keypress-event:
window.addEventListener("keypress", () => console.log("Key pressed!"));
window.onkeypress = () => console.log("Key pressed!");
将 EventListener 附加到 window 元素的两种方法之间的主要区别是:
- 使用“addEventListener()”方法,您将能够为单个事件订阅多个事件侦听器函数。
- 使用'window.onunhandledrejection'-属性你只能给属性分配一个函数,它会被触发在同一事件上。因此,如果您稍后将另一个函数分配给 属性,它将覆盖您的初始分配。
示例:
window.addEventListener("keypress", () => console.log("Key pressed! Listener 1"));
window.addEventListener("keypress", () => console.log("Key pressed! Listener 2"));
window.onkeypress = () => console.log("Key pressed! Listener 3");
window.onkeypress = () => console.log("Key pressed! Listener 4");
// If the user presses any key, the Events will be triggered in the order of assignment.
// The console output would be:
// Key pressed! Listener 1
// Key pressed! Listener 2
// Key pressed! Listener 4
也看看这个很详细的answer,里面解释了两种方法的优缺点!