溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

es6異步請求有哪些狀態(tài)

發(fā)布時間:2023-02-15 14:27:20 來源:億速云 閱讀:105 作者:iii 欄目:web開發(fā)

這篇文章主要介紹了es6異步請求有哪些狀態(tài)的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇es6異步請求有哪些狀態(tài)文章都會有所收獲,下面我們一起來看看吧。

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

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)的回調

es6異步請求有哪些狀態(tài)

看下面一張

es6異步請求有哪些狀態(tài)

報錯則返回promise狀態(tài)的promise,觸發(fā)catch的回調,只要有報錯,如果后面有
.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)})

關于“es6異步請求有哪些狀態(tài)”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“es6異步請求有哪些狀態(tài)”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

es6
AI