Axios 攔截器 取消請求

來源:互聯網
上載者:User

標籤:function   cep   func   函數   throw   inter   catch   intercept   port   

axios 最常用的功能之一,攔截器

axios.interceptors.response.use(  response => {    let {data: json} = response    let resp = json    if(resp.code === 200) return resp;    throw new Error(resp.msg)  },  error => {      return Promise.reject(error)    }  },)

在後台返回資料後,檢測狀態代碼為 200 ,則返回資料,否則,拋出異常

另外一個功能,取消請求,以下來自官方

var CancelToke = axios.CancelToken;var source = CancelToken.source();axios.get(‘/user/12345‘, {    cancelToken:source.toke}).catch(function(thrown){    if(axiso.isCancel(thrown)){        console.log(‘Rquest canceled‘, thrown.message);    }else{        //handle error    }});//取消請求(資訊參數設可設定的)source.cancel("操作被使用者取消");

或者給 CancelToken 建構函式傳遞一個executor function來建立一個cancel token

var CancelToken = axios.CancelToken;var cancel;axios.get(‘/user/12345‘, {    cancelToken: new CancelToken(function executor(c){        //這個executor 函數接受一個cancel function作為參數        cancel = c;    })});//取消請求cancel();
//多數情況,我們封裝的方法都是通過 export 輸出,
//所以 cancel 我們也可以通過 export 輸出,這樣就可以在主業務中隨時調用export { cancel }

 

Axios 攔截器 取消請求

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.