鍍金池/ 問答/HTML/ axios攔截器 返回200一定會(huì)進(jìn)入then方法嗎?

axios攔截器 返回200一定會(huì)進(jìn)入then方法嗎?

我在攔截器中判斷是否返回403狀態(tài),如果是就跳轉(zhuǎn)到登錄頁面
instance.interceptors.response.use(function(response){
if(response.data.status == 200){

    return response.data;

}else if(response.data.status == 403){//用戶身份過期

    Message.error(response.data.errorMessage);
    router.push({path: '/login'});//跳轉(zhuǎn)到登錄頁面
    window.localStorage.removeItem("user");//清空用戶信息   

}else{

    Message.error(response.data.errorMessage);

}
},
error => {

if (error.response) {
    switch (error.response.status) {
       case 400: Message.error(response.error.message); break;
       
    }
}
return Promise.reject(error.response.data)

});
這邊的確能跳轉(zhuǎn)到登錄頁面,但是還是進(jìn)入到了then里面,如何不進(jìn)入then里面
this.$axios.get('getInfo')

            .then((response) => {
                這邊依舊進(jìn)入,如何讓他不進(jìn)入這邊
            })
回答
編輯回答
扯機(jī)薄

應(yīng)該沒有這樣的方法,除非你魔改一下源碼,
其實(shí)可以在then那里加一個(gè)判斷

            .then((response) => {
                if(response){
                    
                }
            })
2017年12月14日 19:22
編輯回答
獨(dú)特范

我們項(xiàng)目封裝的攔截器 可以看一下 200 會(huì)進(jìn)第一個(gè)函數(shù)吧 但是可以根據(jù)code值來判斷后端返回的狀態(tài)
非正常狀態(tài) 返回一個(gè) Promise.reject(res) 就可以再請求時(shí) catch捕獲 或者統(tǒng)一處理

/ 添加響應(yīng)攔截器
Axios.interceptors.response.use(
  response => {
    const res = response.data
    if (res.code !== '1') {
      Message({
        showClose: true,
        message: res.message,
        type: 'error'
      })
      return Promise.reject(res)
    } else {
      return res
    }
  },
  error => {
    Message({
      message: error.message,
      type: 'error',
      duration: 5000
    })
    // 返回錯(cuò)誤信息
    return Promise.reject(error)
  }
)
2017年1月17日 00:06