關於async和await

知識拓展

async function 用來定義一個返回 AsyncFunction對象的異步函數。異步函數是指通過事件循環異步執行的函數,它會通過一個隱式的 Promise返回其結果。


語法

async function name([param[, param[, ... param]]]) { statements }

參數

name函數名稱。
param要傳遞給函數的參數。
statements函數體語句。

返回值
返回的Promise對象會運行執行(resolve)異步函數的返回結果,或者運行拒絕(reject)——如果異步函數拋出異常的話。

示例

async function fn(){  //表示異步,這個函數裏面有異步任務
    let result = await  xxx //表示後面結果需要等待數據讀取完後執行    
}

async特點

  • await只能放到async函數中
  • 相比genrator語義化更強
  • await後面可以是promise對象,也可以是數字、字符串、布爾
  • async函數返回的是一個promise對象
  • 只要await語句後面Promise狀態變成 reject, 那麼整個async函數會中斷執行

示例代碼

你可以通過下面這段代碼來體會一下

function resolveAfter2Seconds() {
  return new Promise(resolve => {
    setTimeout(() => {
      resolve('resolved');
    }, 2000);
  });
}

async function asyncCall() {
  console.log('calling');
  var result = await resolveAfter2Seconds();
  console.log(result);
  // expected output: 'resolved'
}

asyncCall();
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章