在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/HTML/ axios 的 interceptors response 異常捕獲問(wèn)題

axios 的 interceptors response 異常捕獲問(wèn)題

axios.interceptors.response.use(
    response => {
        if (response.data.code === 'OK') {
            return response
        } else if (response.data.code === 'ERROR') {
            console.log(response.data.data)
            return Promise.reject(response.data)
        }    
    },
    error => {
        ...
    })

然后把 axios 封裝了一層

export const Common = {
  axios (url, params) {
    params = params || {}
    return axios.post(url, qs.stringify(params))
  }
}

使用的時(shí)候就

Common.axios('/api/a', { a: 1 }).then().catch(e => {})

每次都要捕獲異常。這個(gè)捕獲異??煞窠y(tǒng)一處理=。=

回答
編輯回答
落殤

這個(gè)需求還挺奇怪,既然你想在外面接受一個(gè) promise,但是又不想去catch這個(gè)promise的reject狀態(tài),那么這個(gè)promise只能永遠(yuǎn)返回resolve或者pending,

export const Common = {
      axios(url, params) {
        let _resolve;
        let _reject;
        const p = new Promise((resolve, reject) => {
          _resolve = resolve;
          _reject = reject;
        })
        params = params || {};
        axios.post(url, qs.stringify(params)).then((res) => {
          _resolve(res)
        }).catch(err => {
          params.callback(err); // 你的錯(cuò)誤處理
          _resolve(); //resolve掉或者不調(diào)用處于pending
        })
        return p;
      }
}
2017年4月16日 01:28
編輯回答
晚風(fēng)眠
else if (response.data.code === 'ERROR') {
             // 這個(gè)里面不能直接干你想干的事情嗎
            console.log(response.data.data)
            return Promise.reject(response.data)
        }    
2017年6月18日 16:30