欧美亚洲中文,在线国自产视频,欧洲一区在线观看视频,亚洲综合中文字幕在线观看

      1. <dfn id="rfwes"></dfn>
          <object id="rfwes"></object>
        1. 站長資訊網(wǎng)
          最全最豐富的資訊網(wǎng)站

          es6異步請求三個狀態(tài)是什么

          es6異步請求三個狀態(tài):1、pending(等待狀態(tài)),不會觸發(fā)then和catch;2、fulfill(滿足狀態(tài)),當主動回調(diào)了resolve時,就處于該狀態(tài),并且會回調(diào)then();3、reject(拒絕狀態(tài)),會觸發(fā)后續(xù)的catch回調(diào)函數(shù)。

          es6異步請求三個狀態(tài)是什么

          本教程操作環(huán)境:windows7系統(tǒng)、ECMAScript 6版、Dell G3電腦。

          Promise 是異步編程的一種解決方案:

          1、主要用于異步計算

          2、可以將異步操作隊列化,按照期望的順序執(zhí)行,返回符合預期的結果

          3、可以在對象之間傳遞和操作 promise,幫助我們處理隊列

          promise 有三個狀態(tài):

          1、pending[待定]初始狀態(tài)

          2、fulfilled[實現(xiàn)]操作成功

          3、rejected[被否決]操作失敗

          當 promise 狀態(tài)發(fā)生改變,就會觸發(fā) then()里的響應函數(shù)處理后續(xù)步驟; 。

          Promise 對象的狀態(tài)改變,只有兩promise 狀態(tài)一經(jīng)改變,不會再變種可能: 從 pending 變?yōu)?fulfilled

          從 pending 變?yōu)?rejected。

          這兩種情況只要發(fā)生,狀態(tài)就凝固了,不會再變了。

          es6異步請求三個狀態(tài)是什么

          then和catch改變狀態(tài)的詳細情形

          看下面一張圖

          es6異步請求三個狀態(tài)是什么

          打印的是resolve狀態(tài),觸發(fā)resolve轉態(tài)的回調(diào)

          es6異步請求三個狀態(tài)是什么

          看下面一張

          es6異步請求三個狀態(tài)是什么

          報錯則返回promise狀態(tài)的promise,觸發(fā)catch的回調(diào),只要有報錯,如果后面有
          .then都不會執(zhí)行了只會執(zhí)行.catch

          es6異步請求三個狀態(tài)是什么

          再看下面

          es6異步請求三個狀態(tài)是什么

          沒有拋出錯誤promise對象 ,還是resolve狀態(tài)

          es6異步請求三個狀態(tài)是什么

          最后看下面一張

          es6異步請求三個狀態(tài)是什么

          只要拋出錯誤的promise對象 就是在reject狀態(tài)

          es6異步請求三個狀態(tài)是什么

          用題目加強一下對promise轉態(tài)變化的理解

          輸出下面1,2,3的順序

          es6異步請求三個狀態(tài)是什么

          題目一: 按順序打印出 1 3 ,不會打印2因為catch不會被執(zhí)行(.then的promise是resolve狀態(tài) 不會執(zhí)行catch

          題目二:返回 1 2 3, 因為在打印1的時候拋出了錯誤對象返回的是reject狀態(tài)下的promise,進入到reject狀態(tài),但是.catch又是resolve狀態(tài)下的promise,所以又會執(zhí)行.then,最終 又返回的是一個resolve狀態(tài)下面的promise

          Promise的all方法

          Promise.all方法用于將多個 Promise 實例,包裝成一個新的 Promise 實例。

          Promise.all(iterator)Promise.all([     new Promise((resolve,reject)=>{       setTimeout(()=>{         resolve('result1')       },2000)     }),      new Promise((resolve,reject)=>{         setTimeout(()=>{             resolve('result2')           },1000)     })]).then(results =>{     results[0]     results[1]     console.log(results)})
          登錄后復制

          【推薦學習:javascript高級教程】

          贊(0)
          分享到: 更多 (0)
          網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號