五月天青色头像情侣网名,国产亚洲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)遵守國家法律
英超| 广河县| 百色市| 德州市| 望都县| 益阳市| 大兴区| 肇州县| 含山县| 华宁县| 松桃| 定边县| 淳化县| 札达县| 贵德县| 棋牌| 霍林郭勒市| 罗城| 定西市| 游戏| 鲜城| 陕西省| 红安县| 遵义市| 栖霞市| 垫江县| 菏泽市| 宁武县| 体育| 乳山市| 瑞安市| 江山市| 淮南市| 浦城县| 九江县| 如皋市| 五大连池市| 揭西县| 扎鲁特旗| 皋兰县| 洮南市|