所謂Promise,簡單說就是一個容器,里面保存著某個未來才會結束的事件(通常是一個異步操作)的結果 。從語法上說,Promise是一個對象,從它可以獲取異步操作的消息 。Promise提供統一的API,各種異步操作都可以用同樣的方法進行處理 。
Promise對象有以下兩個特點:
(1)對象的狀態不受外界影響 。Promise對象代表一個異步操作,有三種狀態:Pending(進行中)、Resolved(已完成,又稱Fulfilled)和Rejected(已失敗) 。只有異步操作的結果,可以決定當前是哪一種狀態,任何其他操作都無法改變這個狀態 。這也是Promise這個名字的由來,它的英語意思就是“承諾”,表示其他手段無法改變 。
【javascript promise 原理】(2)一旦狀態改變,就不會再變,任何時候都可以得到這個結果 。Promise對象的狀態改變,只有兩種可能:從Pending變為Resolved和從Pending變為Rejected 。只要這兩種情況發生,狀態就凝固了,不會再變了,會一直保持這個結果 。就算改變已經發生了,你再對Promise對象添加回調函數,也會立即得到這個結果 。這與事件(Event)完全不同,事件的特點是,如果你錯過了它,再去監聽,是得不到結果的 。
推薦閱讀
- 氣缸原理,氣缸的工作原理及常用公式
- 正確使用放大鏡的方法 放大鏡原理是什么
- 手環測血氧飽和度原理 手環能檢測血氧飽和度嗎
- 熱氣球的構成,自制熱氣球的原理
- 單臂電橋原理
- 暖寶寶發熱是什么原理 暖寶寶發熱原理是什么
- 耳軟骨墊鼻尖原理
- 下雪不冷化雪冷的原理是什么 下雪不冷化雪冷的原理介紹
- 斜拉橋利用了什么原理
- 真空吸盤原理是什么 真空吸盤是怎么工作的
