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

鍍金池/ 問答/HTML/ js 關(guān)于async await的問題?

js 關(guān)于async await的問題?

created () {
  this.init()
},
methods: {
  init () {
    this.getToken()
    this.getData()
  },
  async getToken () {
    let token = await postToken()
    ...
  },
  async getData () {
    if(this.token) return 'token no null'
    let data = await postData();
    ....
  }
}

代碼大致如上,實際運行時總是報'token no null',不是已經(jīng)給兩個用到ajax方法加async await了嗎,為什么還是異步?

回答
編輯回答
不歸路

Async/Await本身就是用于處理異步的,await執(zhí)行后只要一有結(jié)果就會返回

function timeout(ms) {
    return new Promise((resolve) => {
        setTimeout(resolve, ms);
    });
}

async function asyncPrint(value, ms) {
    await timeout(ms);
    console.log(value);
}

asyncPrint('hello world', 50);

上面代碼指定50毫秒以后,輸出hello world。

如果想要指定其請求時間,再返回值可以設(shè)定等候時間。
參考:
ES6系列文章 異步神器async-await
理解 JavaScript 的 async/await

2017年8月22日 10:07
編輯回答
墨染殤

那是在getToken方法和getData方法內(nèi)部,你init方法又不是......

2018年6月14日 05:55
編輯回答
挽青絲
  async init () {
    await this.getToken()
    this.getData()
  },
2018年3月28日 09:26