最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

AntDesign封裝全局異常處理全局?jǐn)r截器

 更新時間:2023年10月07日 17:22:45   作者:Leovany  
這篇文章主要為大家介紹了AntDesign封裝全局異常處理全局?jǐn)r截器,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

場景

本文前端用的是阿里的Ant-Design框架,其他框架也有全局?jǐn)r截器,思路是相同,具體實現(xiàn)自行百度下吧

因為每次都需要調(diào)接口,都需要單獨處理異常情況(code !=0),因此前端需要對后端返回的通用響應(yīng)進(jìn)行統(tǒng)一處理,比如

  • 業(yè)務(wù)異常提示

    從 response取出code,根據(jù)code中集中處理錯誤,比如提示用戶未登錄、參數(shù)為空等

  • 直接返回業(yè)務(wù)內(nèi)容

? 從 response取出data,進(jìn)行返回,而不是每次返回全部json內(nèi)容

1 定義全部異常處理類

新建新的ts類,比如globalRequest.ts

該類處理兩個情況

  • 所有請求攔截器(request.interceptors.request

    在請求后端API前,統(tǒng)一做處理,比如 改變url參數(shù),附帶統(tǒng)一參數(shù)等

  • 所有響應(yīng)攔截器(request.interceptors.response

    接收來自后端返回結(jié)果后,統(tǒng)一處理地方,比如異常處理提示

更詳細(xì)的 api 文檔: https://github.com/umijs/umi-request

/**
 * request 網(wǎng)絡(luò)請求工具
 * 更詳細(xì)的 api 文檔: https://github.com/umijs/umi-request
 */
import {extend} from 'umi-request'; // 需集成類
import {message} from "antd"; // 提示框
import {history} from "@@/core/history";
import {stringify} from "querystring";
/**
 * 配置request請求時的默認(rèn)參數(shù)
 */
const request = extend({
    credentials: 'include', // 默認(rèn)請求是否帶上cookie
    // requestType: 'form',
});
/**
 * 所有請求攔截器
 *  1. 在請求后端API前,統(tǒng)一做處理,比如 改變url參數(shù),附帶統(tǒng)一參數(shù)等
 */
request.interceptors.request.use((url, options) => {
    // 打印每次請求的API
    console.log(`do request url = ${url}`);
    return {
        url,
        options: {
            ...options,
            // headers: {},
        },
    };
});
/**
 * 所有響應(yīng)攔截器
 *  1. 接收來自后端返回結(jié)果后,統(tǒng)一處理地方,比如異常處理提示
 */
request.interceptors.response.use(async response => {
        const res = await response.clone().json();
        if (res.code === 0) {
            // 成功,則取出 data內(nèi)容 直接返回
            return res.data;
        }
        if (res.code === 40100) {       // 未登錄錯誤碼
            message.error('請先登錄');
            // 跳轉(zhuǎn)登錄地址
            history.replace({
                pathname: '/user/login',
                search: stringify({
                    redirect: location.pathname,
                }),
            });
        } else {
            message.error(res.description)
        }
        return res.data;
    }
);
export default request;

2 替換request引用

將原來的request引用,替換成自己的request,在api.ts類中修改

原來

import {request} from 'umi';

替換成

import request from '@/plugins/globalRequest';

3 代碼優(yōu)化

優(yōu)點:

  • 省去每個業(yè)務(wù)異常處理
  • 直接返回 data 內(nèi)容

總結(jié)

加了全局異常處理類后,實際上是通過requestresponse攔截器實現(xiàn)的,少處理很多冗余代碼,代碼更加簡潔和優(yōu)雅了!?。?/p>

以上就是AntDesign封裝全局異常處理全局?jǐn)r截器的詳細(xì)內(nèi)容,更多關(guān)于AntDesign全局?jǐn)r截器的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 理解Java中的內(nèi)存泄露及解決方法示例

    理解Java中的內(nèi)存泄露及解決方法示例

    這篇文章主要介紹了理解Java中的內(nèi)存泄露及解決方法示例,本文講解了Java內(nèi)存管理機(jī)制、Java內(nèi)存泄露、一般情況下內(nèi)存泄漏的避免、復(fù)雜數(shù)據(jù)結(jié)構(gòu)中的內(nèi)存泄露問題等內(nèi)容,需要的朋友可以參考下
    2015-03-03
  • 詳解SpringBoot?統(tǒng)一后端返回格式的方法

    詳解SpringBoot?統(tǒng)一后端返回格式的方法

    今天我們來聊一聊在基于SpringBoot前后端分離開發(fā)模式下,如何友好的返回統(tǒng)一的標(biāo)準(zhǔn)格式以及如何優(yōu)雅的處理全局異常,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2022-05-05
  • Java字符串格式化Formatter和printf()的使用詳解

    Java字符串格式化Formatter和printf()的使用詳解

    這篇文章主要介紹了Java字符串格式化Formatter和printf()的使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-05-05
  • JDK 7 新特性小結(jié)實例代碼解析

    JDK 7 新特性小結(jié)實例代碼解析

    這篇文章通過實例代碼給大家介紹了JDK 7 新特性小結(jié)篇,感興趣的朋友一起看看吧
    2018-03-03
  • 詳細(xì)解讀Java的Lambda表達(dá)式

    詳細(xì)解讀Java的Lambda表達(dá)式

    這篇文章主要介紹了詳細(xì)解讀Java的Lambda表達(dá)式,lambda?表達(dá)式?是Java?8新加入的新特性,它在Java中是引入了函數(shù)式編程這一概念,需要的朋友可以參考下
    2023-04-04
  • 通過圖例了解IDEA引入JQuery實現(xiàn)步驟

    通過圖例了解IDEA引入JQuery實現(xiàn)步驟

    這篇文章主要介紹了IDEA引入JQuery實現(xiàn)步驟圖解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-09-09
  • 通過代碼快速理解Java的三種代理模式

    通過代碼快速理解Java的三種代理模式

    這篇文章主要介紹了通過代碼快速理解Java的三種代理模式,代理(Proxy)是一種設(shè)計模式,提供了對目標(biāo)對象另外的訪問方式,即通過代理對象訪問目標(biāo)對象。,需要的朋友可以參考下
    2019-06-06
  • Java實現(xiàn)為PDF批量添加圖片水印實用指南

    Java實現(xiàn)為PDF批量添加圖片水印實用指南

    在數(shù)字化辦公日益普及的今天,PDF文檔作為信息傳輸和共享的重要載體,其安全性和版權(quán)保護(hù)變得尤為關(guān)鍵,本文將介紹如何使用Spire.PDF?for?Java輕松地在Java應(yīng)用程序中為PDF文檔添加圖片水印,有需要的可以參考下
    2025-11-11
  • Java實現(xiàn)輸出回環(huán)數(shù)(螺旋矩陣)的方法示例

    Java實現(xiàn)輸出回環(huán)數(shù)(螺旋矩陣)的方法示例

    這篇文章主要介紹了Java實現(xiàn)輸出回環(huán)數(shù)(螺旋矩陣)的方法,涉及java針對數(shù)組的遍歷、判斷、輸出等相關(guān)操作技巧,需要的朋友可以參考下
    2017-12-12
  • SpringBoot3如何集成Hazelcast

    SpringBoot3如何集成Hazelcast

    Hazelcast是一款優(yōu)秀的開源內(nèi)存數(shù)據(jù)網(wǎng)格平臺,它能夠提供分布式數(shù)據(jù)存儲和緩存解決方案,通過與SpringBoot3的整合,開發(fā)者可以輕松實現(xiàn)分布式緩存、數(shù)據(jù)共享和會話管理等功能,Hazelcast的內(nèi)存數(shù)據(jù)網(wǎng)格特性支持高性能的緩存系統(tǒng),能夠減少數(shù)據(jù)庫訪問次數(shù),提升應(yīng)用性能
    2024-10-10

最新評論

县级市| 安塞县| 临泉县| 丹巴县| 通城县| 木兰县| 洱源县| 嘉荫县| 永川市| 浑源县| 宜宾市| 贺兰县| 天柱县| 黄陵县| 灵石县| 拜泉县| 高唐县| 五河县| 柳江县| 夹江县| 云南省| 牟定县| 陇南市| 斗六市| 四平市| 太保市| 哈密市| 冀州市| 鹤岗市| 青海省| 福海县| 容城县| 南丰县| 济阳县| 石柱| 同德县| 桃江县| 绩溪县| 印江| 武宣县| 偃师市|