#Promise的三種狀態(tài)
- pending - 進(jìn)行中
- fulfilled - 成功
- rejected - 失敗
Promise對(duì)象,可以將異步操作以同步操作的流程表達(dá)出來,避免了層層嵌套的回調(diào)函數(shù),但Promise對(duì)象的狀態(tài)不受外界影響,Promise對(duì)象代表一個(gè)異步操作,有三種狀態(tài):pending(進(jìn)行中)、fulfilled(已成功)和rejected(已失?。挥挟惒讲僮鞯慕Y(jié)果,可以決定當(dāng)前是哪一種狀態(tài),任何其他操作都無法改變這個(gè)狀態(tài),這也是Promise這個(gè)名字的由來,它的英語意思就是“承諾”,表示其他手段無法改變。
狀態(tài)的改變(或者說決議)不可逆,一旦決議就不能再更改。
任何時(shí)候都可以得到這個(gè)結(jié)果,Promise對(duì)象的狀態(tài)改變,只有兩種可能:從pending變?yōu)閒ulfilled和從pending變?yōu)閞ejected,只要這兩種情況發(fā)生,狀態(tài)就凝固了,不會(huì)再變了,會(huì)一直保持這個(gè)結(jié)果,這時(shí)就稱為 resolved(已定型),如果改變已經(jīng)發(fā)生了,你再對(duì)Promise對(duì)象添加回調(diào)函數(shù),也會(huì)立即得到這個(gè)結(jié)果,這與事件(Event)完全不同,事件的特點(diǎn)是,如果你錯(cuò)過了它,再去監(jiān)聽,是得不到結(jié)果的。