ES6 規(guī)定驶乾,Promise對(duì)象是一個(gè)構(gòu)造函數(shù)惰爬,用來(lái)生成Promise實(shí)例。
Promise對(duì)象有以下兩個(gè)特點(diǎn)辜王。
(1)對(duì)象的狀態(tài)不受外界影響劈狐。Promise對(duì)象代表一個(gè)異步操作,有三種狀態(tài):pending(進(jìn)行中)呐馆、fulfilled(已成功)和rejected(已失敺实蕖)。只有異步操作的結(jié)果汹来,可以決定當(dāng)前是哪一種狀態(tài)续膳,任何其他操作都無(wú)法改變這個(gè)狀態(tài)。這也是Promise這個(gè)名字的由來(lái)收班,它的英語(yǔ)意思就是“承諾”坟岔,表示其他手段無(wú)法改變。
(2)一旦狀態(tài)改變摔桦,就不會(huì)再變社付,任何時(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ò)過(guò)了它钠绍,再去監(jiān)聽(tīng),是得不到結(jié)果的立磁。