1. 程式人生 > 實用技巧 >12.20 async關鍵字的學習

12.20 async關鍵字的學習

1.async 修飾的函式返回結果是一個promise例項物件

  • 1.函式無返回值
    //1.無返回值(返回一個狀態成功值為undefined的promsie例項物件)
    async function fn1() {}
    let result1 = fn1()
    console.log(result1); // Promise{<fulfilled>: undefined}
  • 2.函式有返回值
    //2.1 返回非promise值(返回一個狀態成功值為返回值的promsie例項物件)
    async function fn2() {
      return 'hello'
    }
    let result2 = fn2()
    console.log(result2); // Promise{<fulfilled>: "hello"}
    //2.2.1 返回成功的promise(返回一個狀態成功、值為返回的promsie的成功值的promsie例項物件)
    async function fn3() {
      return Promise.resolve('success')
    }
    let result3 = fn3()
    console.log(result3); // Promise{<fulfilled>: "success"}
    //2.2.2 返回失敗的promise(返回一個狀態失敗、值為返回的promsie的失敗值的promsie例項物件)
    async function fn4() {
      return Promise.reject('failed')
    }
    let result4 = fn4()
    console.log(result4); // Promise{<rejected>: "failed"}
  • 3.函式丟擲異常
    //3.丟擲異常(返回一個狀態失敗、值為異常值的promsie例項物件)
    async function fn5() {
      // throw new Error('error')
      throw 'error'
    }
    let result5 = fn5()
    console.log(result5); // Promise{<rejected>: "error"}