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)
            })
        })
    },
},
相关文章
相关标签/搜索