vue + ES6 async和await

做用:
asyncawait是用來處理異步的。須要異步像同步同樣執行,須要異步返回結果以後,再往下依據結果繼續執行。 ios

await必須放在async function之中的做用就是等待Promise的resolve的出現,這個過程是阻塞的axios

async 用於申明一個 function 是異步的,
await 用於等待一個異步方法執行完成。使用了await就沒必要使用then來接受異步操做的返回值,而是直接賦值給變量便可,所賦的值就是resolve給出的值。異步

加上接口axios例子async

created () {
    this.init()
},
methods: {
    //拿到方法1與方法2的兩個結果後,執行init方法
    async init () {
      try {
          let oneRes = await this.queryOne();
          let twoRes = await this.queryTwo();    
          let res = oneRes + twoRes;
          console.log(res);
      } catch (error) {
          console.log(error);
      }        
    },
    //方法1
    queryOne () {
        const params = {name: xxx}
        return new Promise((resolve, reject) => {
            axios.post('/XXXX', { params}).then((res) => {
                if (data.rs === 1) {
                    resolve(data)
                }
            }).catch((err) => {
                reject(err)
            })
        })
    },
    //方法2
    queryTwo () {
        const params = {name: xxx}
        return new Promise((resolve, reject) => {
            axios.post('/XXXX', { params }).then((data) => {
                if (data.rs === 1) {
                    resolve(data)
                }
            }).catch((err) => {
                reject(err)
            })
        })
    },
},
相關文章
相關標籤/搜索