成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

報錯監(jiān)控-監(jiān)控Promise錯誤

Jrain / 3137人閱讀

摘要:上次我們聊過了前端監(jiān)控執(zhí)行錯誤和第三方資源加載異常的監(jiān)控,那么這次來聊聊如何捕獲錯誤。首先先安利下自己做的報錯監(jiān)控的項目歡迎和。使用對事件進行監(jiān)聽即可捕捉到未被的錯誤。

上次我們聊過了前端監(jiān)控 JS 執(zhí)行錯誤和第三方資源加載異常的監(jiān)控,那么這次來聊聊如何捕獲 Promise 錯誤。

首先先安利下自己做的報錯監(jiān)控的項目 FE-Monitor 歡迎 issue 和 star 。

Promise 在前端中的使用已經非常普遍了,但是許多開發(fā)者或許習慣了鏈式調用卻忘了捕獲 Promise 的錯誤了。

例如:

function forgetCatchError () {
  async()
    .then(() => {
      // code..
    })
    .then(() => console.log("forget catch error!"));
}

上面的示例代碼中 async() 中和后續(xù)的兩個 then 中的代碼如果出錯或者 reject ,錯誤沒有得到處理。

在沒有使用 catch 方法指定錯誤處理的回調函數,Promise 對象拋出的錯誤不會傳遞到外層代碼,即不會有任何反應。當promise被 reject 并且錯誤信息沒有被處理的時候,會拋出 unhandledrejection,這個錯誤不會被 window.onerroraddEventListener("error") 所監(jiān)聽到。

使用 unhandledrejection

unhandledrejection 事件進行監(jiān)聽即可捕捉到未被 catch 的 Promise 錯誤。

window.addEventListener("unhandledrejection", err => {
  console.log(err.reason)

  err.preventDefault();
}, false);

 // 或者
 window.onunhandledrejection = function(err) {
  console.log(err.reason);
  return true;
}

addEventListener 中調用 event 的 preventDefault() 可以讓 Promise 的錯誤不拋送到控制臺,在 onunhandledrejection 中則可以使用 return true 來達到相同的效果。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://m.hztianpu.com/yun/105725.html

相關文章

  • 一步一步搭建前端監(jiān)控系統(tǒng):JS錯誤監(jiān)控

    摘要:摘要徒手寫錯誤監(jiān)控。為什么用定時器呢,因為在單頁應用中,路由的切換和地址欄的變化是無法被監(jiān)控的,我確實沒有想到特別好的辦法來監(jiān)控,所以用了這種方式,如果有人有更好的辦法,請給我留言,謝謝。 摘要: 徒手寫JS錯誤監(jiān)控。 作者:一步一個腳印一個坑 原文:搭建前端監(jiān)控系統(tǒng)(二)JS錯誤監(jiān)控篇 Fundebug經授權轉載,版權歸原作者所有。 背景:市面上的監(jiān)控系統(tǒng)有很多,大多收費,對于...

    EdwardUp 評論0 收藏0
  • Vue.js@2.6.10更新內置錯誤處機制,F(xiàn)undebug同步支持相應錯誤監(jiān)控

    摘要:摘要的錯誤監(jiān)控插件同步支持異步錯誤監(jiān)控。此次更新,我們對的監(jiān)控插件做了相應的更新,來更好地支持使用框架開發(fā)的應用錯誤的監(jiān)控。程序運行后,成功捕獲該錯誤總結更新到,對錯誤處理提供了更加強大的支持。 摘要: Fundebug 的 JavaScript 錯誤監(jiān)控插件同步支持 Vue.js 異步錯誤監(jiān)控。 Vue.js 從誕生至今已經 5 年,尤大在今年 2 月份發(fā)布了重大更新,即Vue 2....

    DC_er 評論0 收藏0
  • 前端錯誤監(jiān)控與收集探究

    摘要:這樣很容易造成大的損失,提前做好錯誤收集和處理,可以減少損失。 編寫代碼只是做好項目的一小部分,寫代碼難免會碰到錯誤。因此,在項目上線后,我們還需要主動對項目的錯誤進行收集,不能等用戶發(fā)現(xiàn)錯誤,再聯(lián)系我們,我們再去處理。這樣很容易造成大的損失,提前做好錯誤收集和處理,可以減少損失。 本人并沒有做過相關的工作,下面的文章只是我在學習中的一點思考和總結,可能有比較多不足和錯誤的地方,希望大...

    ZoomQuiet 評論0 收藏0
  • 前端異常監(jiān)控-看這篇就夠了

    摘要:前端異常監(jiān)控如果是移除的流程,那么編程就一定是將放進去的流程。過濾掉運行時錯誤上報加載錯誤事件捕獲異常最新的規(guī)范中定義了事件用于全局捕獲對象沒有處理器時異常情況。 前端異常監(jiān)控 如果debug是移除bug的流程,那么編程就一定是將bug放進去的流程。如果沒有用戶反饋問題,那就代表我們的產品棒棒噠,對不對? 主要內容 Web規(guī)范中相關前端異常 異常按照捕獲方式分類 異常的捕獲方式 日志...

    Aklman 評論0 收藏0

發(fā)表評論

0條評論

Jrain

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<