這篇文章主要介紹了es6異步請求有哪些狀態(tài)的相關(guān)知識,內(nèi)容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇es6異步請求有哪些狀態(tài)文章都會有所收獲,下面我們一起來看看吧。
創(chuàng)新互聯(lián)主營定日網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,App定制開發(fā),定日h5小程序定制開發(fā)搭建,定日網(wǎng)站營銷推廣歡迎定日等地區(qū)企業(yè)咨詢
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ù)。
Promise 是異步編程的一種解決方案:
1、主要用于異步計算
2、可以將異步操作隊列化,按照期望的順序執(zhí)行,返回符合預(yù)期的結(jié)果
3、可以在對象之間傳遞和操作 promise,幫助我們處理隊列
promise 有三個狀態(tài):
1、pending[待定]初始狀態(tài)
2、fulfilled[實現(xiàn)]操作成功
3、rejected[被否決]操作失敗
當 promise 狀態(tài)發(fā)生改變,就會觸發(fā) then()里的響應(yīng)函數(shù)處理后續(xù)步驟; 。
Promise 對象的狀態(tài)改變,只有兩promise 狀態(tài)一經(jīng)改變,不會再變種可能: 從 pending 變?yōu)?fulfilled
從 pending 變?yōu)?rejected。
這兩種情況只要發(fā)生,狀態(tài)就凝固了,不會再變了。
看下面一張圖
打印的是resolve狀態(tài),觸發(fā)resolve轉(zhuǎn)態(tài)的回調(diào)
看下面一張
報錯則返回promise狀態(tài)的promise,觸發(fā)catch的回調(diào),只要有報錯,如果后面有
.then都不會執(zhí)行了只會執(zhí)行.catch
再看下面
沒有拋出錯誤promise對象 ,還是resolve狀態(tài)
最后看下面一張
只要拋出錯誤的promise對象 就是在reject狀態(tài)
輸出下面1,2,3的順序
題目一:按順序打印出 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 實例,包裝成一個新的 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)})
關(guān)于“es6異步請求有哪些狀態(tài)”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對“es6異步請求有哪些狀態(tài)”知識都有一定的了解,大家如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
本文標題:es6異步請求有哪些狀態(tài)
URL網(wǎng)址:http://muchs.cn/article38/jpgdpp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機網(wǎng)站建設(shè)、、移動網(wǎng)站建設(shè)、Google、微信公眾號、網(wǎng)站維護
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)