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

Vue之Axios的異步請求問題詳解

 更新時間:2023年02月10日 10:25:18   作者:愛學習的大雄  
總的來說這并不是一道難題,那為什么要拿出這道題介紹?拿出這道題真正想要傳達的是解題的思路,以及不斷優(yōu)化探尋最優(yōu)解的過程。希望通過這道題能給你帶來一種解題優(yōu)化的思路,Axios是一個開源的可以用在瀏覽器端和Node JS的異步通信框架,主要作用就是實現AJAX異步通信

遇到的問題

在目前一個需求中,我需要等待axios請求完成后,判斷請求是否出現異常,然后來判斷是否關閉彈窗

修改后大概代碼如下:

async submitForm() {
  let flag = false
  //表單驗證,默認通過
  let formValidation = true
  this.$refs['vForm'].validate(valid => {
    if (!valid){
      formValidation = false
    }
    //TODO: 提交表單
  })
  if (formValidation === true){
    //這里需要使用await,否則不會等待該方法運行完成
    await insertIllegalInfo(this.formData).then(res=>{
      this.$message.success("新增成功")
      flag = true
      console.log("新增成功了")
      console.log(flag)
    })
  }
  console.log("提交馬上返回了")
  console.log(flag)
  return flag
},

原來在方法中沒有使用asyncawait,由于發(fā)送的axios請求是異步請求,所以在請求還沒完成的時候submitForm這個方法就已經將flag返回了

這就導致了一個問題,如果我在后端在處理請求的時候出現異常,我在這里無法進行處理

經過百度搜索,發(fā)現使用async+await能夠解決該問題,將異步方法改為同步方法,在方法前面加上async進行修飾,然后在axios請求前使用await進行修飾即可,這樣就不會出現異步的問題

這個問題解決后,又出現了一個新的問題,就是我在這里不是返回了一個flag嗎,我在另外一個vue頁面中需要獲取到return返回的這個flag,但是按照正常步驟獲取不到

后來經過查詢資料后發(fā)現了原因,如下:

  • async 是一個修飾符,async 定義的函數會默認的返回一個Promise對象resolve的值,因此對async函數可以直接進行then操作,返回的值即為then方法的傳入函數。
  • await 也是一個修飾符,await 關鍵字 只能放在 async 函數內部, await關鍵字的作用 就是獲取 Promise中返回的內容, 獲取的是Promise函數中resolve或者reject的值。
  • async/await 是一種編寫異步代碼的新方法。之前異步代碼的方案是回調和 promise。
  • async/await 是建立在 promise 的基礎上。(如果對Promise不熟悉,我已經著手在寫Promise的文章了)
  • async/await 像 promise 一樣,也是非阻塞的。
  • async/await 讓異步代碼看起來、表現起來更像同步代碼。這正是其威力所在。

主要原因就是async 定義的函數會默認的返回一個Promise對象resolve的值,所以我們需要使用then去進行取值,如下

submitInsertIllegalInfoDialog(){
    //重要的是這里,這里調用了上面說的的submitForm方法
  this.$refs.insertIllegalInfoDialog.submitForm().then(flag=>{
    console.log(flag)
    if (flag === true){
      console.log("馬上關閉彈窗了")
        //這個是來關閉彈窗的
      this.insertIllegalInfoDialogVisible = false
      console.log("重新查詢")
      this.getIllegalInfoList()
      this.$refs.insertIllegalInfoDialog.resetForm();
    }
  })
},

總結

學會async和await的使用能夠讓我在開發(fā)vue項目的時候更加靈活,之后在遇到axios異步請求沖突的時候可以參考本篇文章進行解決

到此這篇關于Vue之Axios的異步請求問題詳解的文章就介紹到這了,更多相關Vue Axios異步請求內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Vue.js實現圖片切換功能

    Vue.js實現圖片切換功能

    這篇文章主要為大家詳細介紹了Vue.js實現圖片切換功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • electron-vue?運行報錯?Object.fromEntries?is?not?a?function的解決方案

    electron-vue?運行報錯?Object.fromEntries?is?not?a?function

    Object.fromEntries()?是?ECMAScript?2019?新增的一個靜態(tài)方法,用于將鍵值對列表(如數組)轉換為對象,如果在當前環(huán)境中不支持該方法,可以使用?polyfill?來提供類似功能,接下來通過本文介紹electron-vue?運行報錯?Object.fromEntries?is?not?a?function的解決方案
    2023-05-05
  • Vue實現瀏覽器端掃碼功能

    Vue實現瀏覽器端掃碼功能

    本文主要介紹,通過使用基于 vue技術棧的前端開發(fā)技術,在瀏覽器端調起攝像頭,并進行掃碼識別功能,對識別到的二維碼進行跳轉或其他操作處理,對vue瀏覽器掃碼功能的實現代碼感興趣的朋友一起看看吧
    2021-10-10
  • 解決vue-cli中stylus無法使用的問題方法

    解決vue-cli中stylus無法使用的問題方法

    這篇文章主要介紹了解決vue-cli中stylus無法使用的問題方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • Vue用Export2Excel導出excel,多級表頭數據方式

    Vue用Export2Excel導出excel,多級表頭數據方式

    這篇文章主要介紹了Vue用Export2Excel導出excel,多級表頭數據方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • vue路由傳參三種基本方式詳解

    vue路由傳參三種基本方式詳解

    這篇文章主要介紹了vue路由傳參三種基本方式詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-12-12
  • 完美解決通過IP地址訪問VUE項目的問題

    完美解決通過IP地址訪問VUE項目的問題

    這篇文章主要介紹了完美解決通過IP地址訪問VUE項目的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • vue draggable resizable 實現可拖拽縮放的組件功能

    vue draggable resizable 實現可拖拽縮放的組件功能

    這篇文章主要介紹了vue draggable resizable 實現可拖拽縮放的組件功能,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-07-07
  • VUE使用localstorage和sessionstorage實現登錄示例詳解

    VUE使用localstorage和sessionstorage實現登錄示例詳解

    這篇文章主要為大家介紹了VUE使用localstorage和sessionstorage實現登錄示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • Vue中keep-alive 實現后退不刷新并保持滾動位置

    Vue中keep-alive 實現后退不刷新并保持滾動位置

    這篇文章主要介紹了Vue中keep-alive 實現后退不刷新并保持滾動位置的相關知識,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-03-03

最新評論

柳河县| 漳浦县| 龙川县| 宁陕县| 常熟市| 剑川县| 赤峰市| 尼勒克县| 镇原县| 绥中县| 浦江县| 陆丰市| 茂名市| 雷波县| 双柏县| 祥云县| 新津县| 西平县| 米泉市| 赫章县| 渝中区| 神池县| 伊宁市| 贵定县| 揭阳市| 青岛市| 施秉县| 视频| 杭锦后旗| 馆陶县| 若尔盖县| 武陟县| 遵义市| 浦城县| 赞皇县| 龙川县| 西乌珠穆沁旗| 广水市| 灯塔市| 新绛县| 吉首市|