簡體   English   中英

處理未處理的承諾拒絕:onunhandledrejection 和 unhandledrejection 之間的區別

[英]Handling unhandled promise rejections: Difference between onunhandledrejection and unhandledrejection

MDN中,當未處理承諾拒絕時會觸發兩個事件。

它們都具有相同的兼容性,所以我想知道onunhandledrejectionunhandledrejection之間有什么區別?

JavaScript 中幾乎每個窗口的 EventListener 都是這種情況。 例如,請參閱下面的按鍵事件:

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

也看看這個非常詳細的答案,它解釋了兩種方法的優缺點!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM