12.20 async關鍵字的學習
阿新 • • 發佈:2020-12-20
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"}