VUE 獲取非同步錯誤並自定義處理

2021-09-11 07:53:11 字數 776 閱讀 7700

在使用codemirror實現json、yml和property之間的轉換時,使用了js-yaml外掛程式處理json和yml,發現當輸入yml格式錯誤時會在控制台輸出錯誤提示,希望能夠在頁面上顯示這個錯誤資訊而不在控制台以error形式輸出(且不影響vue預設的錯誤處理方法)。

檢視vue的錯誤處理機制是vue.config.errorhandler,我們可以將需要新錯誤處理方式的函式處理成async函式,使用promise的錯誤處理機制。

在main.js中加入:

// 為了不影響vue自有的vue.config.errorhandler正常工作

// 再單獨定義乙個非同步錯誤處理函式

vue.error.asyncerrorhandler = err =>

// 然後在vue例項建立之前,包裹所有method方法

// 根據method執行後返回的是否是promise,來決定是否需要catch錯誤

vue.mixin(

object.keys(methods).foreach(key => else }})

}})

完成上述後,我們在新建vue例項的時候,將需要使用自定義錯誤處理的方法宣告為async:

new vue(,

async fn1() // 同步拋錯也會**獲

},fn2()

} }})

直接使用

trycatch(e)

自定義錯誤頁面處理

配置類 configuration public class errorpageconfig implements errorpageregistrar controller 前後端不分離 controller public class maincontroller or 前後端分離 restcon...

自定義非同步IO

一 http請求本質阻塞 import socket import select client socket.socket client.connect www.baidu.com 80 io阻塞 print 鏈結成功 data client.recv 1024 io阻塞 print data 二 ...

Vue自定義元件並實現v model

為了使元件使用起來更簡單或者簡潔,我們在vue專案中可能需要自定義元件,並且為它實現v model,以下介紹具體的實現 此處是對element ui元件el select的二次封裝 v model實現原理 v model其實是乙個語法糖,繫結了乙個叫value的屬性,然後處理了乙個叫input的事件...