async函數
- 什麼是async
- async是異步的簡寫,用於聲明一個函數是異步函數的
- 語法規定await只能出現在async函數中
- async函數會返回的是一個Promise對象
- async會把return的直接量通過Promise.resolve()封裝成Promise對象
- 當async函數不能用await獲取返回值時,我們可以用then()鏈來處理這個Promise對象
- async函數調用不會造成阻塞,它內部所有的阻塞都被封裝在一個Promise對象中異步執行
- await
- await不僅僅用於等Promise對象,他可以等任意表達式的結果(普通函數調用,直接量的)
- await是一個運算符,用於組成表達式,await表達式的運算結果取決於它等到的東西
- 總結:
- async會將函數的返回值封裝成一個Promise對象,await會等這個Promise完成,並將resolve的結果返回出來
- async/await的優勢在於處理由多個Promise組成的then鏈的時候