国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

一種實現(xiàn)簡單且舒服的前端接口異常處理方案

LiangJ / 1700人閱讀

摘要:業(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

相關(guān)文章

  • 前端性能與異常上報

    摘要:回過頭來發(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ù)器接口...

    gggggggbong 評論0 收藏0
  • [譯] PEP 255--簡單生成器

    摘要:第四種選擇是在不同的線程中運(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)時...

    tracymac7 評論0 收藏0
  • 記一次Node項目優(yōu)化

    摘要:相關(guān)環(huán)境由于是一個幾年前的項目,所以使用的是這樣的。一些小提示本次優(yōu)化筆記,并不會有什么文件的展示。將異步改為了串行,喪失了作為異步事件流的優(yōu)勢。 這兩天針對一個Node項目進(jìn)行了一波代碼層面的優(yōu)化,從響應(yīng)時間上看,是一次很顯著的提升。 一個純粹給客戶端提供接口的服務(wù),沒有涉及到頁面渲染相關(guān)。 背景 首先這個項目是一個幾年前的項目了,期間一直在新增需求,導(dǎo)致代碼邏輯變得也比較復(fù)雜,接...

    dreamans 評論0 收藏0

發(fā)表評論

0條評論

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