溫馨提示×

溫馨提示×

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

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

javascript中Promise的作用是什么

發(fā)布時(shí)間:2021-07-06 17:06:35 來源:億速云 閱讀:415 作者:Leah 欄目:開發(fā)技術(shù)

本篇文章為大家展示了javascript中Promise的作用是什么,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

  Promise對象有以下兩個(gè)特點(diǎn):

  1、對象的狀態(tài)不受外界影響。Promise對象代表一個(gè)異步操作,有三種狀態(tài):

  pending:初始狀態(tài),不是成功或失敗狀態(tài)。

  fulfilled:意味著操作成功完成。

  rejected:意味著操作失敗。

  只有異步操作的結(jié)果,可以決定當(dāng)前是哪一種狀態(tài),任何其他操作都無法改變這個(gè)狀態(tài)。這也是Promise這個(gè)名字的由來,它的英語意思就是「承諾」,表示其他手段無法改變。

  2、一旦狀態(tài)改變,就不會(huì)再變,任何時(shí)候都可以得到這個(gè)結(jié)果。Promise對象的狀態(tài)改變,只有兩種可能:從Pending變?yōu)镽esolved和從Pending變?yōu)镽ejected。只要這兩種情況發(fā)生,狀態(tài)就凝固了,不會(huì)再變了,會(huì)一直保持這個(gè)結(jié)果。就算改變已經(jīng)發(fā)生了,你再對Promise對象添加回調(diào)函數(shù),也會(huì)立即得到這個(gè)結(jié)果。這與事件(Event)完全不同,事件的特點(diǎn)是,如果你錯(cuò)過了它,再去監(jiān)聽,是得不到結(jié)果的。

  Promise優(yōu)缺點(diǎn)

  有了Promise對象,就可以將異步操作以同步操作的流程表達(dá)出來,避免了層層嵌套的回調(diào)函數(shù)。此外,Promise對象提供統(tǒng)一的接口,使得控制異步操作更加容易。

  Promise也有一些缺點(diǎn)。首先,無法取消Promise,一旦新建它就會(huì)立即執(zhí)行,無法中途取消。其次,如果不設(shè)置回調(diào)函數(shù),Promise內(nèi)部拋出的錯(cuò)誤,不會(huì)反應(yīng)到外部。第三,當(dāng)處于Pending狀態(tài)時(shí),無法得知目前進(jìn)展到哪一個(gè)階段(剛剛開始還是即將完成)。

  Promise創(chuàng)建

  要想創(chuàng)建一個(gè)promise對象、可以使用new來調(diào)用Promise的構(gòu)造器來進(jìn)行實(shí)例化。

  下面是創(chuàng)建promise的步驟:

  varpromise=newPromise(function(resolve,reject){

  //異步處理

  //處理結(jié)束后、調(diào)用resolve或reject

  });

  Promise構(gòu)造函數(shù)包含一個(gè)參數(shù)和一個(gè)帶有resolve(解析)和reject(拒絕)兩個(gè)參數(shù)的回調(diào)。在回調(diào)中執(zhí)行一些操作(例如異步),如果一切都正常,則調(diào)用resolve,否則調(diào)用reject。

上述內(nèi)容就是javascript中Promise的作用是什么,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

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

AI