思路:
用一個統(tǒng)一的函數(shù)封裝一層,統(tǒng)一處理報錯信息。
let handleError = null;
export default {
foo (fn) {
callWithErrorHandling(fn)
},
// 用戶可以調(diào)用該函數(shù)注冊統(tǒng)一的錯誤處理函數(shù)
registerErrorHandler (fn) {
handleError = fn;
}
}
function callWithErrorHandling (fn) {
try {
fn && fn()
} catch (e) {
// 將捕獲的錯誤傳遞給用戶注冊的錯誤處理程序
handleError(e)
}
}