ES6之Promise對(duì)象

能夠用到很多異步處理的回調(diào)函數(shù)之中,而且支持鏈?zhǔn)秸{(diào)用,主要是pending/resolved/rejected這三個(gè)狀態(tài)。

創(chuàng)建Promise對(duì)象

let myObj = new Promise(fucntion(resolve,reject){})

里面可以改變promise的狀態(tài)

通過resolve(data)表示進(jìn)程成功

通過reject(error)表示進(jìn)程失敗

回調(diào)函數(shù)

then方法支持兩個(gè)回調(diào)函數(shù),第一個(gè)是接受來自resolved里的數(shù)據(jù),第二個(gè)是接受rejected里的數(shù)據(jù),做回調(diào)函數(shù)處理

``

    let myFunc = function(){
            let helo = new Promise(function(resolve,reject){
            if()
                resolve(data);
            if()
                reject(error);
        })
        
        return helo //千萬記得return出去,不然外面沒監(jiān)聽到
    }
    
    myFunc().then(function(data){..},funcion(error){})
    //支持鏈?zhǔn)秸{(diào)用,可以在then再次調(diào)用then,第二個(gè)then會(huì)接受第一個(gè)then里面的函數(shù)值作為參數(shù)逐步往下
    //可以將其看作一個(gè)二叉樹 一邊是resolved,一邊是rejected

錯(cuò)誤捕捉

catch()then(null,function(){})的別名,用于指定發(fā)生錯(cuò)誤時(shí)的回調(diào)函數(shù)

可以在Promise對(duì)象中 throw new Error('wrong code'),然后在catch()中可以wrong code被捕捉到

包裝多個(gè)Promise

Promise.all(promise1,promise2,promise3) 必須等到多個(gè)Promise對(duì)象的狀態(tài)均改變后,Promise.all才會(huì)改變狀態(tài)

Promise.race(p1,p2,p3) 當(dāng)一個(gè)Promise對(duì)象改變后,Promise.race()的狀態(tài)就會(huì)改變

改造為Promise對(duì)象

let hello =  promise.resolve();
...
p.then(()=>{
    ...your code
})

同理 可以使用 p.catch()
常用鏈?zhǔn)秸{(diào)用
--

.done() done方法處于回調(diào)鏈的尾端,保證拋出任何可能出現(xiàn)的錯(cuò)誤

.finally()用于指定不管Promise對(duì)象最后狀態(tài)如何都會(huì)執(zhí)行的操作,可用于清除變量或者做一些善后的操作

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Promiese 簡(jiǎn)單說就是一個(gè)容器,里面保存著某個(gè)未來才會(huì)結(jié)束的事件(通常是一個(gè)異步操作)的結(jié)果,語法上說,Pr...
    雨飛飛雨閱讀 3,484評(píng)論 0 19
  • Promise的含義: ??Promise是異步編程的一種解決方案,比傳統(tǒng)的解決方案——回調(diào)函數(shù)和事件——更合理和...
    呼呼哥閱讀 2,263評(píng)論 0 16
  • 00、前言Promise 是異步編程的一種解決方案,比傳統(tǒng)的解決方案——回調(diào)函數(shù)和事件——更合理和更強(qiáng)大。它由社區(qū)...
    夜幕小草閱讀 2,219評(píng)論 0 12
  • 本文適用的讀者 本文寫給有一定Promise使用經(jīng)驗(yàn)的人,如果你還沒有使用過Promise,這篇文章可能不適合你,...
    HZ充電大喵閱讀 7,448評(píng)論 6 19
  • 高度臨在閱讀 112評(píng)論 0 0

友情鏈接更多精彩內(nèi)容