promise用法搭配,Promise用法詳解

2025-07-04 03:14:55 字數 1180 閱讀 7604

promise用法詳解

1樓:學海語言教育

promise物件只有三種狀態

node是以非同步(async)**著稱的,其非同步性提高了程式的執行效率,但同時也減少了程式的可讀性。如果我們有幾個非同步操作,並且後乙個操作需要前乙個操作返回的資料才能執行,這樣按照node的一般執行規律,要實現有序的非同步操作,通常是一層加一層巢狀下去。

這個問題es6提出了promise的實現。

promise用途:

promise物件有兩個特點:

1)物件的狀態不受外界影響。promise物件代表乙個非同步操作,有三種狀態:pending(進行中)、fulfilled(已成功)和rejected(已失敗)。

只有非同步操作的結果,可以決定當前是哪一種狀態,任何其他操作都無法改變這個狀態。這也是promise這個名字的由來,它的英語意思就是 「承諾」 ,表示其他手段無法改變。

2)一旦狀態改變,就不會再變,任何時候都可以得到這個結果。promise物件的狀態改變,只有兩種可能:從pending變為fulfilled和從pending變為rejected。

只要這兩種情況發生,狀態就凝固了,不會再變了,會一直保持這個結果,這時就稱為 resolved(已定型)。如果改變已經發生了,你再對promise物件新增**函式,也會立即得到這個結果。這與事件(event)完全不同,事件的特點是,如果你錯過了它,再去監聽,是得不到結果的。

有了promise物件,就可以將非同步操作以同步操作的流程表達出來,避免了層層巢狀的**函式。此外,promise物件提供統一的介面,使得控制非同步操作更加容易。promise也有一些缺點。

首先,無法取消promise,一旦新建它就會立即執行,無法中途取消。其次,如果不設定**函式,promise內部丟擲的錯誤,不會反應到外部。第三,當處於pending狀態時,無法得知目前進展到哪乙個階段(剛剛開始還是即將完成)。

一般形式

promise中的引數executor是乙個執行器函式,它有兩個引數resolve和reject。它內部通常有一些非同步操作,如果非同步操作成功,則可以呼叫resolve()來將該例項的狀態置為fulfilled,即已完成的,如果一旦失敗,可以呼叫reject()來將該例項的狀態置為rejected,即失敗的。

Promise用法詳解,求promise的用法

promise物件只有三種狀態 node是以非同步 async 著稱的,其非同步性提高了程式的執行效率,但同時也減少了程式的可讀性。如果我們有幾個非同步操作,並且後一個操作需要前一個操作返回的資料才能執行,這樣按照node的一般執行規律,要實現有序的非同步操作,通常是一層加一層巢狀下去。這個問題es...

單詞operate的用法和固定搭配

一 用法 1 operate的基本意思是 運轉 操作 多指開動 機器等 引申可表示 經營 管理 主要用於美式英語中。2 operate用作及物動詞時,接名詞 代詞或動詞不定式作賓語。3 operate更強調成功大於結果。4 operate含所有人與 人共同經營的意思。二 固定搭配 1 operate...

afford的用法與搭配有哪些?

1 afford的用法 afford的基本含義是充足,指有足夠的錢買某物,有足夠的財力或時間做某事,也可以表示經受得起,引申可表示提供,給予。afford還可作經受得起的意思,可用於財政狀況,健康狀況或者形象,聲譽等,其賓語一般為動詞不定式或表示動作的名詞,不接反身代詞作賓語。afford作提供,給...