摘要:業(yè)務(wù)邏輯中,在處理接口數(shù)據(jù)的時候,除了要處理正常情況,也要處理異常情況。隱藏的統(tǒng)一處理邏輯會負(fù)責(zé)錯誤提示返回數(shù)據(jù)格式化等如何實現(xiàn)實現(xiàn)方案也很簡單。
業(yè)務(wù)邏輯中,在處理接口數(shù)據(jù)的時候,除了要處理正常情況,也要處理異常情況。
處理方案多種多樣,在這里介紹一個我常用的方案,在該方案中,業(yè)務(wù)代碼只需處理數(shù)據(jù)正常的情況,無需處理:數(shù)據(jù)異常、接口請求報錯(try catch)等。
以 Vue 項目為例。
該方案的開發(fā)體驗業(yè)務(wù)代碼中的寫法:
export default { async created() { const res = await this.getData(); if (res !== null) { // 處理正常邏輯 } // 如果 res 是 null,則不做任何處理 // 隱藏的統(tǒng)一處理邏輯會負(fù)責(zé)錯誤提示等 }, methods: { getData() { return this.$ajax({ // 各類參數(shù) }) } } }
效果:
業(yè)務(wù)代碼中只需要處理 res 不為 null 的情況,只要 res !== null (true)。
只要數(shù)據(jù)返回有值,只處理該情況即可。
隱藏的統(tǒng)一處理邏輯會負(fù)責(zé)錯誤提示、返回數(shù)據(jù)格式化等
如何實現(xiàn)實現(xiàn)方案也很簡單。大家可以看到上面代碼中用到了 this.$ajax。
在 Vue 中就是新增一個 $ajax 插件即可。代碼如下:
ajaxPlugin.js
let $ajax = axios.create({ // ... 各類配置 }); let $newAjax = (config) => { const $vm = this; return $ajax(config) .then(res => { // 這里統(tǒng)一處理異常情況 // 同時也可以將數(shù)據(jù)返回值格式統(tǒng)一化 if (res.code !== 200) { $vm.$message.error(res.message); return null; } else { return { data: res.data }; } }).catch(err => { $vm.$message.error(err); return null; }); }; export default { install(){ Vue.prototype.$ajax = $newAjax; } };
index.js
import ajaxPlugin from "./ajaxPlugin"; Vue.use(ajaxPlugin);總結(jié)
我在多個項目中實現(xiàn)了這套處理邏輯,在實際的開發(fā)體驗中,感覺非常不錯。
在這里分享給大家。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/106277.html
摘要:回過頭來發(fā)現(xiàn),我們的項目,雖然在服務(wù)端層面做好了日志和性能統(tǒng)計,但在前端對異常的監(jiān)控和性能的統(tǒng)計。對于前端的性能與異常上報的可行性探索是有必要的。這是我們頁面加載性能優(yōu)化需求中主要上報的相關(guān)信息。 概述 對于后臺開發(fā)來說,記錄日志是一種非常常見的開發(fā)習(xí)慣,通常我們會使用try...catch代碼塊來主動捕獲錯誤、對于每次接口調(diào)用,也會記錄下每次接口調(diào)用的時間消耗,以便我們監(jiān)控服務(wù)器接口...
摘要:第四種選擇是在不同的線程中運(yùn)行生產(chǎn)者和消費(fèi)者。包含語句的函數(shù)被稱為生成器函數(shù)。然后引發(fā)一個異常,表明迭代器已經(jīng)耗盡。換句話說,未捕獲的異常終結(jié)了生成器的使用壽命。 showImg(https://segmentfault.com/img/bVbntUq?w=4272&h=2848);我正打算寫寫 Python 的生成器,然而查資料時發(fā)現(xiàn),引入生成器的 PEP 沒人翻譯過,因此就花了點(diǎn)時...
摘要:相關(guān)環(huán)境由于是一個幾年前的項目,所以使用的是這樣的。一些小提示本次優(yōu)化筆記,并不會有什么文件的展示。將異步改為了串行,喪失了作為異步事件流的優(yōu)勢。 這兩天針對一個Node項目進(jìn)行了一波代碼層面的優(yōu)化,從響應(yīng)時間上看,是一次很顯著的提升。 一個純粹給客戶端提供接口的服務(wù),沒有涉及到頁面渲染相關(guān)。 背景 首先這個項目是一個幾年前的項目了,期間一直在新增需求,導(dǎo)致代碼邏輯變得也比較復(fù)雜,接...
閱讀 4175·2023-04-26 02:40
閱讀 2663·2023-04-26 02:31
閱讀 2758·2021-11-15 18:08
閱讀 574·2021-11-12 10:36
閱讀 1435·2021-09-30 09:57
閱讀 5208·2021-09-22 15:31
閱讀 2633·2019-08-30 14:17
閱讀 1281·2019-08-30 12:58