Promise (1)
Promise 是由原生JavaScript提供的異步編程問(wèn)題的一種解決 回調(diào)地獄 的方案。
基本用法:

直接這樣寫(xiě) : new Promise( ajaxA ).then( ajaxB )

為什么? 因?yàn)?Promise 是沒(méi)有能力檢測(cè)其內(nèi)部傳入的異步函數(shù) ajaxA 何時(shí)結(jié)束。這里需要我們?cè)趥魅氲倪@個(gè)異步函數(shù)中去手動(dòng)處理,告訴 Promise 我的異步任務(wù)已經(jīng)執(zhí)行完成,你可以開(kāi)始往下執(zhí)行了。
事實(shí)上,在 new Promise( 異步函數(shù) ) 時(shí),這個(gè)異步函數(shù)會(huì)被傳入兩個(gè)參數(shù)。我們來(lái)驗(yàn)證下:


它們是兩個(gè)函數(shù),由JavaScript引擎提供,不用自己部署。通常約定 將它們命名為:resove 和? reject
resolve
函數(shù)的作用是,將Promise對(duì)象的狀態(tài)從“未完成”變?yōu)椤俺晒Α保磸腜ending變?yōu)镽esolved),在異步操作成功時(shí)調(diào)用,并將異步操作的結(jié)果,作為參數(shù)傳遞出去;reject
函數(shù)的作用是,將Promise對(duì)象的狀態(tài)從“未完成”變?yōu)椤笆 保磸腜ending變?yōu)镽ejected),在異步操作失敗時(shí)調(diào)用,并將異步操作報(bào)出的錯(cuò)誤,作為參數(shù)傳遞出去。
Promise是一個(gè)構(gòu)造函數(shù),使用時(shí)需要 new 生成promise對(duì)象。
Promise構(gòu)造函數(shù) 接收函數(shù)作為參數(shù)
Promise執(zhí)行時(shí)有兩個(gè)狀態(tài) Pending未完成 和 已完成(已完成,又分兩種分別是 Resolved成功 、Rejected失敗)
被Promise包裝的異步函數(shù)會(huì)被傳入兩個(gè)函數(shù)參數(shù) resove 和? reject 。

