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

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

解析Promise解決異步回調(diào)

2023-02-24 09:40 作者:千鋒前端  | 我要投稿

Promise是ES6語法中新增的一個(gè)標(biāo)準(zhǔn)內(nèi)置對(duì)象,它代表了一個(gè)異步操作的最終完成或者失敗,能夠把異步操作最終的成功返回值或者失敗原因和相應(yīng)的處理函數(shù)關(guān)聯(lián)起來,是異步“回調(diào)地獄”的解決方案之一。


1 應(yīng)用場(chǎng)景

要了解Promise對(duì)象,首先要了解這個(gè)對(duì)象的應(yīng)用場(chǎng)景,Promise對(duì)象主要就是為了解決異步回調(diào)地獄問題的,那么什么是回調(diào)函數(shù)呢?請(qǐng)看下面的一段代碼:

此時(shí),函數(shù)a和函數(shù)a的參數(shù)都是一個(gè)函數(shù),為了便于區(qū)別,我們把作為函數(shù)a參數(shù)傳入的那個(gè)函數(shù)b叫做函數(shù)a的回調(diào)函數(shù),我們?yōu)槭裁葱枰卣{(diào)函數(shù)?

?當(dāng)我們執(zhí)行一個(gè)異步的行為的時(shí)候,我們需要在一個(gè)異步行為執(zhí)行完畢之后做一些事情,那么,我們是沒有辦法提前預(yù)知這個(gè)異步行為是什么時(shí)候完成的,我們就只能以回調(diào)函數(shù)的形式來進(jìn)行,比如我們需要通過ajax請(qǐng)求一個(gè)數(shù)據(jù),根據(jù)ajax返回的結(jié)果執(zhí)行不同的代碼,但是我們不知道ajax對(duì)象什么時(shí)候能獲取到返回結(jié)果,就需要使用回調(diào)函數(shù),看下面的代碼:

如果采用上面的調(diào)用方式,先調(diào)用getData獲取數(shù)據(jù)以后直接調(diào)用showData顯示數(shù)據(jù),那么document.body.innerHTML = null,因?yàn)榇藭r(shí)data還沒有獲取到數(shù)據(jù),請(qǐng)求時(shí)異步的,我們需要在請(qǐng)求完成的時(shí)候調(diào)用showData才行,也就是像下面這樣調(diào)用

2 回調(diào)地獄

?當(dāng)一個(gè)回調(diào)函數(shù)嵌套一個(gè)回調(diào)函數(shù)的時(shí)候,就會(huì)出現(xiàn)一個(gè)嵌套結(jié)構(gòu),當(dāng)嵌套的多了就會(huì)出現(xiàn)回調(diào)地獄的情況, 比如我們發(fā)送三個(gè) ajax 請(qǐng)求,第一個(gè)正常發(fā)送,第二個(gè)請(qǐng)求需要第一個(gè)請(qǐng)求的結(jié)果中的某一個(gè)值作為參數(shù),第三個(gè)請(qǐng)求需要第二個(gè)請(qǐng)求的結(jié)果中的某一個(gè)值作為參數(shù)


  • 回調(diào)地獄,其實(shí)就是回調(diào)函數(shù)嵌套過多導(dǎo)致的,當(dāng)代碼成為這個(gè)結(jié)構(gòu)以后,已經(jīng)沒有維護(hù)的可能了,所以我們要把代碼寫的更加的藝術(shù)一些。

3 Promise的使用

Promise是一個(gè)對(duì)象,這個(gè)對(duì)象有三個(gè)狀態(tài):

  • 待定(pending):初始狀態(tài),既沒有成功,也沒有失敗,表示異步任務(wù)正在進(jìn)行中

  • 成功(fulfilled):異步任務(wù)執(zhí)行完畢,變成成功狀態(tài)

  • 失敗(rejected):異步任務(wù)執(zhí)行完畢,變成失敗狀態(tài)

下面就帶大家創(chuàng)建一個(gè)Promise對(duì)象


解析Promise解決異步回調(diào)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
镇原县| 贵州省| 化州市| 呼图壁县| 社会| 渝北区| 镇坪县| 桃园市| 达尔| 华坪县| 禄丰县| 绵竹市| 惠州市| 青岛市| 漳浦县| 扎赉特旗| 定南县| 丹东市| 溧水县| 青铜峡市| 麟游县| 喜德县| 青岛市| 会理县| 师宗县| 疏附县| 礼泉县| 鹤山市| 宿州市| 龙游县| 新田县| 长乐市| 高阳县| 娱乐| 新源县| 多伦县| 涿州市| 依兰县| 通海县| 繁昌县| 大化|