這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)promise的意思,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
創(chuàng)新互聯(lián)專注于金鄉(xiāng)企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站設(shè)計,成都做商城網(wǎng)站。金鄉(xiāng)網(wǎng)站建設(shè)公司,為金鄉(xiāng)等地區(qū)提供建站服務(wù)。全流程按需網(wǎng)站制作,專業(yè)設(shè)計,全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
js是單線程的,Promise解決就是異步編程一種思想,比傳統(tǒng)的回調(diào)函數(shù)和事件強(qiáng)大好多。Promise相當(dāng)于異步操作結(jié)果的占位符,他不會去訂閱一個事件,也不會傳遞一個回調(diào)函數(shù)給目標(biāo)函數(shù),而是讓函數(shù)返回一個Promise(相當(dāng)于訂單號)。
Promise:英文承諾意思,Promise對象中保存某個未來才回結(jié)束的事件(通常是一個異步操作)的結(jié)果。
Promise有三個狀態(tài):
pendding,rejected,resolved
Promise對象狀態(tài)的切換只有兩種可能:
pendding->rejected,pendding->resolved
基礎(chǔ)用法:
new Promise((resolved,rejected)=>{})
Promise對象resolved,rejected函數(shù),在異步事件狀態(tài)pendding->resolved回調(diào)成功時,會調(diào)用resolved函數(shù);當(dāng)異步操作失敗時,回調(diào)用rejected函數(shù)。
Promise的then(resolved,rejected)函數(shù)參數(shù)有兩個,一個resolved函數(shù),一個rejected函數(shù)。
Promise的catch():捕捉promise錯誤函數(shù),和then函數(shù)參數(shù)中rejected作用一樣,處理錯誤,由于Promise拋出錯誤具有冒泡性質(zhì),能夠不斷傳遞,會傳到catch中,所以建議所有錯誤處理放在catch中,then中只處理成功的。
Promise一個大特色就是可以鏈?zhǔn)秸{(diào)用,在then,catch中可以返回Promise對象。
Promise.all([promise1,promise2]):參數(shù)是promise對象數(shù)組,等到所有promise對象狀態(tài)resolved,該對象的狀態(tài)會resolved,會立即調(diào)用then,當(dāng)有一個promise對象為rejected,該對象的狀態(tài)就會邊城rejectd,執(zhí)行catch。
Promise.race([promise1,promise2]):競速函數(shù),當(dāng)有一個promise對象狀態(tài)變化了,該對象就會采用和相同的狀態(tài),并執(zhí)行相應(yīng)函數(shù)。
promise的生命周期
每個 Promise都會經(jīng)歷一個短暫的生命周期,初始為掛起態(tài)( pending state),這表示異步操作尚未結(jié)束。一個掛起的 Promise 也被認(rèn)為是未決的( unsettled )。一旦異步操作結(jié)束, Promise就會被認(rèn)為是已決的( settled ),并進(jìn)入兩種可能狀態(tài)之一:
1. 已完成(fulfilled ): Promise 的異步操作已成功結(jié)束;
2. 已拒絕(rejected ): Promise 的異步操作未成功結(jié)束,可能是一個錯誤,或由其他原因?qū)е隆?/p>
一旦狀態(tài)改變,就「凝固」了,會一直保持這個狀態(tài),不會再發(fā)生變化。當(dāng)狀態(tài)發(fā)生變化,promise.then綁定的函數(shù)就會被調(diào)用。注意:Promise一旦新建就會「立即執(zhí)行」,無法取消。這也是它的缺點(diǎn)之一。
上述就是小編為大家分享的promise的意思了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。