promise對(duì)象的含義

promise是異步編程的一種解決方法,比回調(diào)函數(shù)和事件更強(qiáng)大更合理。

所謂promise簡單說就是一個(gè)容器,里面保存著未來才會(huì)結(jié)束的事件(通常是一個(gè)異步操作的結(jié)果),從語法上說promise是一個(gè)對(duì)象,從它可以獲取異步操作的消息。

promise對(duì)象有兩個(gè)特點(diǎn):

1.對(duì)象的狀態(tài)不受外界影響。promise對(duì)象代表一個(gè)異步操作,有三種狀態(tài):pending(進(jìn)行中),resolved(已完成)和reject(已失敗)。只有異步操作的結(jié)果可以決定當(dāng)前是哪一種狀態(tài),任何其他操作都無法改變這個(gè)狀態(tài)。這也是promise這個(gè)名字的由來。表示其他手段無法改變。

2.一旦狀態(tài)改變就不會(huì)在變,任何時(shí)候都可以得到這個(gè)結(jié)果。promise對(duì)象的狀態(tài)改變只有兩種可能:從pending變?yōu)閞esolved,從pending變?yōu)閞ejected。只要這兩種狀況發(fā)生,狀態(tài)就會(huì)凝固了,不會(huì)在變了,會(huì)一直保持這個(gè)結(jié)果。就算改變已經(jīng)發(fā)生了,即使調(diào)用回調(diào)函數(shù)也還是這個(gè)結(jié)果。這與事件(Event)完全不同,事件的特點(diǎn)是如果你錯(cuò)過了,再去監(jiān)聽它,是得不到結(jié)果的。

promise優(yōu)點(diǎn)

有了promise對(duì)象,就可以把異步操作以同步操作的流程表達(dá)出來,避免了層層嵌套的回調(diào)函數(shù)。此外,promise對(duì)象提供了統(tǒng)一的接口,使得控制異步操作更簡單。

缺點(diǎn)

1.無法取消promise,一旦創(chuàng)建就立即執(zhí)行,無法中途取消

2.如果不設(shè)置回調(diào)函數(shù),promise內(nèi)部拋出錯(cuò)誤,不會(huì)反映到外部

3.當(dāng)處于pending狀態(tài)時(shí),無法得知目前進(jìn)展到那個(gè)階段(剛剛開始還是即將完成)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Promise 對(duì)象 Promise 的含義 Promise 是異步編程的一種解決方案,比傳統(tǒng)的解決方案——回調(diào)函...
    neromous閱讀 8,825評(píng)論 1 56
  • Promise對(duì)象是一種解決異步問題的方法,還有的解決方案是asyns 和 await (es7) 這么是目前的終...
    站在大神的肩膀上看世界閱讀 1,334評(píng)論 0 6
  • 目錄:Promise 的含義基本用法Promise.prototype.then()Promise.prototy...
    BluesCurry閱讀 1,558評(píng)論 0 8
  • 00、前言Promise 是異步編程的一種解決方案,比傳統(tǒng)的解決方案——回調(diào)函數(shù)和事件——更合理和更強(qiáng)大。它由社區(qū)...
    夜幕小草閱讀 2,220評(píng)論 0 12
  • 時(shí)值大興世界月季大會(huì)召開,賦詩記之。 莫道花無百日紅, 五彩繽紛各不同。 二十四番花信至, 從此日日笑東風(fēng)。
    老爸的雜拌兒糖閱讀 241評(píng)論 0 8

友情鏈接更多精彩內(nèi)容