Promise
三種狀態
pending resolved rejected
pending —> resolved 或 pending —> rejected
變化不可逆
Promise
狀態表現
pending 狀態,不會觸發 then 和 catch
resolved 狀態,會觸發後續的 then 回撥函式
rejected 狀態,會觸發後續的 catch 回撥函式
then
和 catch
改變狀態
then 正常返回 resolved , 裡面有報錯則返回 rejected
catch 正常返回 resolved,裡面有報錯則返回 rejected
async
和 await
非同步回撥
callback hell
Promise then catch
鏈式呼叫,但也是基於回撥函式async/await
是同步語法,徹底消滅回撥函式
async/await
和 Promise
的關係
async/await
是消滅非同步回撥的終極武器但和
Promise
並不互斥反而,倆者相輔相成
執行
async
函式,返回的是Promise
await 相當於
Promise
的 thentry...catch
可捕獲異常,代替了Promise
的catch
非同步本質
async
/await
是消滅非同步回撥的終極武器JS還是單執行緒,還得是有非同步,還得是基於
event loop
async
/await
只是一個語法糖
本作品採用《CC 協議》,轉載必須註明作者和本文連結