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

vue axios請求成功卻進(jìn)入catch的原因分析

 更新時間:2020年09月08日 11:28:40   作者:林景之  
這篇文章主要介紹了vue axios請求成功卻進(jìn)入catch的原因分析,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

問題:axios返回200狀態(tài)碼(即請求成功)卻走進(jìn)了catch里面

原因:

1.當(dāng)axios請求完成后走的時then的代碼塊,如果then代碼塊中存在錯誤代碼信息,這時就會進(jìn)入catch中拋出異常(注意:此時控制臺并不會報錯,因為錯誤被catch捕獲了

2.axios是異步發(fā)起,若發(fā)起后頁面刷新,那么就會丟失當(dāng)前進(jìn)程,導(dǎo)致接收不到。例如 form表單,點擊按鈕提交后,表單會刷新

補充知識:axios用catch的寫法與不使用catch有什么區(qū)別?

官網(wǎng)上的寫法:

axios.post(url, data)
  .then(response => {
    console.log(response);
  })
  .catch(error => {
      console.log(error);
  })

公司項目的寫法:

axios.post(url, data)
  .then(response => {
    console.log(response);
  }, error => {
    console.log(error);
  })

之前一直沒有仔細(xì)研究過then和catch的寫法,事實上,這個不是 axios catch 的相關(guān) 而是關(guān)于 new Promise() 的then

阮一峰在 promise 文檔中有介紹。

一般來說,不要在then方法里面定義 Reject 狀態(tài)的回調(diào)函數(shù)(即then的第二個參數(shù)),總是使用catch方法。

// bad
promise
 .then(function(data) {
  // success
 }, function(err) {
  // error
 });

// good
promise
 .then(function(data) { //cb
  // success
 })
 .catch(function(err) {
  // error
 });

上面代碼中,第二種寫法要好于第一種寫法,理由是第二種寫法可以捕獲前面then方法執(zhí)行中的錯誤,也更接近同步的寫法(try/catch)。因此,建議總是使用catch方法,而不使用then方法的第二個參數(shù)。

公司的寫法無法catch第一個參數(shù)的異常。

這樣寫可能容易看懂一些:

axios.post(url, data)
  .then(response => {
    //處理邏輯
  }, error => {
    console.log('接口報錯');
  })
  .catch(error=>{
    console.log('處理邏輯出錯');
  })
axios.post(url, data)
  .then(response => {
    //處理邏輯
  })
  .catch(error=>{
    console.log('接口或處理邏輯出錯');
  })

以上這篇vue axios請求成功卻進(jìn)入catch的原因分析就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

肇东市| 久治县| 竹溪县| 富蕴县| 河津市| 寻乌县| 莱西市| 吉水县| 柳河县| 桓仁| 肥西县| 辽宁省| 厦门市| 商水县| 连江县| 和平区| 九龙城区| 介休市| 图木舒克市| 聊城市| 周宁县| 香港 | 清徐县| 马尔康县| 林州市| 浙江省| 玉树县| 金寨县| 台北县| 兰溪市| 林芝县| 三门县| 保山市| 万荣县| 南平市| 吴旗县| 兴安盟| 新干县| 荣昌县| 高雄市| 凌海市|