最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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)遵守國家法律
林芝县| 盐边县| 莲花县| 三亚市| 江安县| 社会| 郸城县| 当阳市| 鱼台县| 武城县| 盐池县| 林周县| 永济市| 乐都县| 团风县| 怀柔区| 渝中区| 卢湾区| 蒙自县| 合肥市| 梨树县| 工布江达县| 苏尼特右旗| 青神县| 宁海县| 永仁县| 锦州市| 吉林省| 都江堰市| 通辽市| 武隆县| 阿坝| 福建省| 色达县| 西贡区| 靖宇县| 包头市| 南城县| 九龙县| 临潭县| 无极县|