千鋒教育JavaScript全套視頻教程(10天學(xué)會Js,前端javascrip

promise的使用
promise是為了解決回調(diào)地獄問題
promise是一個(gè)構(gòu)造函數(shù),只要按照使用方法去封裝異步操作,最終promise對象就會知道里面異步操作的狀態(tài)。
promise的使用:new一個(gè)promise對象,這個(gè)對象有給一個(gè)參數(shù),這個(gè)參數(shù)是一個(gè)回調(diào)函數(shù),這個(gè)回調(diào)函數(shù)又有兩個(gè)形參,
一個(gè)叫resolve,一個(gè)叫reject。
我們在這個(gè)回調(diào)函數(shù)內(nèi)部寫異步操作,
并且在異步操作成功以后調(diào)用resolve(),
異步操作失敗以后調(diào)用reject(),
成功以后會執(zhí)行p.then(function(){}),
失敗以后就會執(zhí)行p.catch(function(){})。
promise本質(zhì)是狀態(tài)機(jī),有個(gè)屬性,記錄內(nèi)部操作的狀態(tài):
1.創(chuàng)建promise以后就是pending狀態(tài)進(jìn)行中。2.異步操作成功以后調(diào)用resolve,fulfilled成功狀態(tài)。
3.異步操作失敗以后調(diào)用reject狀態(tài)。注意:狀態(tài)是不可逆的。
promise的其他實(shí)例方法:all,全部p和p2是同時(shí)執(zhí)行的,都成功以后p0才成功,有一個(gè)失敗p0就失敗。race(競賽),p和p2是同時(shí)執(zhí)行的,返回了p0,也是promise對象,p0的狀態(tài)跟最快成功的p一樣的。