五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

ES6 Promise(2) 基本用法

2020-04-25 12:54 作者:一枚猿  | 我要投稿

創(chuàng)建Promise



Promise?對(duì)象是由關(guān)鍵字?new?及其構(gòu)造函數(shù)來創(chuàng)建的。該構(gòu)造函數(shù)會(huì)把一個(gè)叫做“處理器函數(shù)”(executor function)的函數(shù)作為它的參數(shù)。這個(gè)“處理器函數(shù)”接受兩個(gè)函數(shù)——resolve?和?reject?——作為其參數(shù)。當(dāng)異步任務(wù)順利完成且返回結(jié)果值時(shí),會(huì)調(diào)用?resolve?函數(shù);而當(dāng)異步任務(wù)失敗且返回失敗原因(通常是一個(gè)錯(cuò)誤對(duì)象)時(shí),會(huì)調(diào)用reject?函數(shù)。



上面的myPromise 是一個(gè)Promise對(duì)象。它將擁有Promise的一些方法。


上例運(yùn)行的結(jié)果。


按照上面的思路,如果我們想讓某個(gè)函數(shù)擁有promise的功能,只需要讓它的返回值是一個(gè)Promise對(duì)象就可以了。比如




示例1

10秒之后,在頁碼上打印當(dāng)前時(shí)間。



提示

不要嘗試著在Promise里面寫定時(shí)器,那樣是沒有效果,因?yàn)橹灰{(diào)用了resolve或reject,說明我們這個(gè)promise已經(jīng)結(jié)束了。如果想加入定時(shí)器,參見示例2.



示例2


每隔1秒,在頁碼上打印出當(dāng)前時(shí)間。



運(yùn)行效果:



示例3

ajax請(qǐng)求。下面是用Promise來實(shí)現(xiàn)ajax請(qǐng)求。


運(yùn)行結(jié)果:


為什么要用promise



011、回調(diào)地獄 + 異步同步事件調(diào)用順序帶來的雙重傷害對(duì)于Promise的執(zhí)行很好的規(guī)范了對(duì)于復(fù)雜的嵌套回調(diào)的寫法,并且對(duì)于異步事件的執(zhí)行順序也是更加清晰。


022、回調(diào)事件的分離

Promise有三種狀態(tài):未定(pending)、接受(fulfillment)和拒絕(rejection)。并且,只能由未定狀態(tài)變?yōu)榻邮軤顟B(tài),或者由未定狀態(tài)變?yōu)榫芙^狀態(tài)。

只有調(diào)用resolve或reject回調(diào)函數(shù)時(shí),這個(gè)Promise的狀態(tài)才能從未定向其他兩個(gè)狀態(tài)改變。并且可以將異步操作的函數(shù)分離出來,提高了復(fù)用性。

























































ES6 Promise(2) 基本用法的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
通渭县| 清新县| 芜湖县| 崇信县| 淄博市| 尉犁县| 临城县| 都江堰市| 封开县| 鄂伦春自治旗| 灯塔市| 洱源县| 仲巴县| 磐石市| 乌兰浩特市| 普兰店市| 德江县| 莎车县| 安康市| 古田县| 独山县| 黄陵县| 隆化县| 临湘市| 秭归县| 普宁市| 宁化县| 时尚| 湟源县| 自贡市| 汉沽区| 东阿县| 临颍县| 襄城县| 泾阳县| 黑水县| 密山市| 伊宁县| 琼中| 奉化市| 当涂县|