await 理解(day02)

await 操做符用於等待一個Promise 對象。它只能在異步函數 async function 中使用。

await 表達式會暫停當前 async function 的執行,等待 Promise 處理完成。
若 Promise 正常處理(fulfilled),其回調的resolve函數參數做爲 await 表達式的值,繼續執行 async function。
若 Promise 處理異常(rejected),await 表達式會把 Promise 的異常緣由拋出。
另外,若是 await 操做符後的表達式的值不是一個 Promise,則返回該值自己。

若是該值不是一個 Promise,await 會把該值轉換爲已正常處理的Promise,而後等待其處理結果。

async function f2() {
  var y = await 20;
  console.log(y); // 20
}
f2();

若是 Promise 處理異常,則異常值被拋出。

async function f3() {
  try {
    var z = await Promise.reject(30);
  } catch (e) {
    console.log(e); // 30
  }
}
f3();

reject 和 then ,catch問題

當咱們reject()一個東西的時候,咱們在then中函數的第二個參數中能夠接收到reject的值,若是沒有回調函數沒有第二個參數,reject()的值能夠用catch接受。可是resolve的值必定在then中接受。因爲等網絡出現的非邏輯問題只能在catch中接收。

相關文章
相關標籤/搜索