Promise - DashingDigit001/WikiPage GitHub Wiki

用法

myPromise();

function delay(){
    return new Promise(()=>{
        setTimeout(() => {
          resolve();
          //reject();
        }, 1000);
    })
}

async function myPromise() {
  console.log("in");    
  await delay();
  console.log("out");
}

觀念

  1. JS 主程式不允許執行非同步的等待行為
  2. promise 要用函式封裝起來直接return出去
  3. 執行 await delay() 時,一秒後會執行 resolve(),myPromise() 才可以繼續執行下去
  4. 在 JS 中執行 Promise 如果沒執行 resolve() 就等同於執行 return 程式就不會繼續往下執行
  5. 如果執行 reject() 就會跳出 expection ,reject(errorMessage) 可以把錯誤訊息當參數帶出去