什么是Promise?

1.Promise的漢譯是諾言

我突然明白了promise的意義,就是一個方法、一個js乃至一個頁面的后續(xù)js代碼的執(zhí)行,都依賴于一個異步返回的數(shù)據(jù),那么接下來所有的js代碼都可以放在promise的then里面,鏈?zhǔn)秸{(diào)用,清晰了點(diǎn)吧~。其實await也可以實現(xiàn)這樣的方式,但是應(yīng)該promise更好一點(diǎn)。

2.怎么用Promise

? ? 因為一直被各種插件框架封裝的ajax混淆,所以一直不理解promise,因為他們都有自己實現(xiàn)promise的方法,拋去ajax的思維,我們可以使用setTimeout來做實驗

? ? promise構(gòu)造函數(shù),resolve和reject是早就封裝在構(gòu)造函數(shù)里面的方法。new的時候?qū)懮暇托辛恕?/p>

promise? demo1

? ? 上面的demo中,test函數(shù)會返回一個promise對象,這個對象啊,接收一個函數(shù)作為參數(shù),作為參數(shù)的函數(shù)還接受兩個參數(shù),這個兩個參數(shù)是兩個方法,resolve方法可以把promise的狀態(tài)從pedding改變成resolved,reject方法可以把promise的狀態(tài)從pedding改變成rejected。promise的只能改變一次,一旦變成resolved/rejected。將不會在改變。

????下面的鏈?zhǔn)秸{(diào)用,如果promise對象使用了resolve方法,那么調(diào)用的時候,就走then回調(diào)。否則走catch錯誤捕獲回調(diào)。

? ? 其實到這里,就覺得promise就是個回調(diào)函數(shù)而已。跟jquery里面的ajax請求成功執(zhí)行的success函數(shù)一樣。但是promise厲害的地方就是多重回調(diào)。鏈?zhǔn)交卣{(diào)。

? ? 改變promise的狀態(tài),并不會終結(jié)后面代碼的執(zhí)行,但是resolve或者reject之后,promise的任務(wù)就完成了,后續(xù)操作最好放在then的回調(diào)里。

3.鏈?zhǔn)交卣{(diào)

promise的鏈?zhǔn)秸{(diào)用

鏈?zhǔn)交卣{(diào)就是同步的,一定要等到上一個promise的狀態(tài)改變了,才能立即執(zhí)行下一個promise。

我也不知道一般用到哪些地方,因為三方插件都有自己的promise的實現(xiàn)。這個我暫時也不知道用在哪兒。后續(xù)再進(jìn)行補(bǔ)充吧。

4.方法

resolve

reject

then

catch

finally

all

race

try: 可以執(zhí)行同步和異步的方法

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

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

  • Promise 對象 Promise 的含義 Promise 是異步編程的一種解決方案,比傳統(tǒng)的解決方案——回調(diào)函...
    neromous閱讀 8,834評論 1 56
  • 1.背景介紹 什么是promise? Promise是異步編程的一種解決方案,比傳統(tǒng)的解決方案——回調(diào)函數(shù)和事件—...
    遠(yuǎn)望的云閱讀 1,722評論 0 1
  • 00、前言Promise 是異步編程的一種解決方案,比傳統(tǒng)的解決方案——回調(diào)函數(shù)和事件——更合理和更強(qiáng)大。它由社區(qū)...
    夜幕小草閱讀 2,226評論 0 12
  • 成熟對很多人來說是一個比較模糊的概念名詞,什么樣才算一個成熟的人呢? 今天我和女朋友逛街,我明明已經(jīng)答應(yīng)過她,這個...
    磐icon閱讀 287評論 0 0
  • 我奔赴千里而來 看到你提著燈 為我照亮山路 眼中光芒靜謐寧靜 嘴角有溫和的笑容 忽然覺得 這一路上的風(fēng)霜塵土在見到...
    ef37bccc74b9閱讀 487評論 2 1

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