成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

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

Jrain / 3076人閱讀

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

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

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

Promise 在前端中的使用已經(jīng)非常普遍了,但是許多開發(fā)者或許習(xí)慣了鏈?zhǔn)秸{(diào)用卻忘了捕獲 Promise 的錯誤了。

例如:

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

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

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

使用 unhandledrejection

unhandledrejection 事件進(jìn)行監(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 中調(diào)用 event 的 preventDefault() 可以讓 Promise 的錯誤不拋送到控制臺,在 onunhandledrejection 中則可以使用 return true 來達(dá)到相同的效果。

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

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/105725.html

相關(guān)文章

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

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

    EdwardUp 評論0 收藏0
  • [email protected]更新內(nèi)置錯誤處機(jī)制,F(xiàn)undebug同步支持相應(yīng)錯誤監(jiān)控

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

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

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

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

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

    Aklman 評論0 收藏0

發(fā)表評論

0條評論

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