Promise的含義
Promise的含義
所謂Promise,就是一個物件,用來傳遞非同步操作的訊息。
Promise物件有以下兩個特點:
- 物件的狀態不受外界影響。Promise物件代表一個非同步操作,有三種狀態:Pending(進行中)、Resolved(已完成,又稱Fulfilled)和Rejected(已失敗)。只有非同步操作的結果,可以決定當前是哪一種狀態,任何其他操作都無法改變這個狀態。
- 一旦狀態改變,就不會再變,任何時候都可以得到這個結果。Promise物件的狀態改變,只有兩種可能:從Pending變為Resolved和從Pending變為Rejected。只要這兩種情況發生,狀態就凝固了,不會再變了,會一直保持這個結果。就算改變已經發生了,你再對Promise物件新增回撥函式,也會立即得到這個結果。這與事件(Event)完全不同,事件的特點是,如果你錯過了它,再去監聽,是得不到結果的。
有了Promise物件,就可以將非同步操作以同步操作的流程表達出來,避免了層層巢狀的回撥函式。此外,Promise物件提供統一的介面,使得控制非同步操作更加容易。
Promise也有一些缺點:
- 首先,無法取消Promise,一旦新建它就會立即執行,無法中途取消。
- 其次,如果不設定回撥函式,Promise內部丟擲的錯誤,不會反應到外部。
- 第三,當處於Pending狀態時,無法得知目前進展到哪一個階段(剛剛開始還是即將完成)。
## 基本用法
Promise物件是一個建構函式,用來生成Promise例項
//建立promise var promise = new Promise(function(resolve, reject) { // 進行一些非同步或耗時操作 if ( /*如果成功 */ ) { resolve("Stuff worked!"); } else { reject(Error("It broke")); } }); //繫結處理程式 promise.then(function(result) { //promise成功的話會執行這裡 document.write(result); // "Stuff worked!" }, function(err) { //promise失敗會執行這裡 document.write(err); // Error: "It broke" });
- resolve函式的作用是,將Promise物件的狀態從“未完成”變為“成功”(即從Pending變為Resolved),在非同步操作成功時呼叫,並將非同步操作的結果,作為引數傳遞出去;
- reject函式的作用是,將Promise物件的狀態從“未完成”變為“失敗”(即從Pending變為Rejected),在非同步操作失敗時呼叫,並將非同步操作報出的錯誤,作為引數傳遞出去。
相關文章
- Promise含義及基本用法Promise
- 黑客的含義黑客
- ITL的含義
- [STAThread]的含義thread
- restrict session的含義RESTSession
- bootstrap含義boot
- 字串格式化format符號含義+轉義字元含義字串格式化ORM符號字元
- 雲端計算的含義
- Java中static的含義Java
- oracle rowid 的含義Oracle
- Explain各列的含義AI
- CGContext含義GCContext
- C++中&和*的含義C++
- Spring中bean的含義SpringBean
- mysql 下的提示和含義MySql
- oracle中斜槓(/)的含義Oracle
- v$session command 的含義Session
- DISPLAY變數的含義 zt變數
- SVN中clean up的含義
- c++中&含義C++
- explain中filesort含義AI
- explain結果含義AI
- CDN含義與DNS的聯絡DNS
- Nginx常用配置引數的含義Nginx
- officer的含義及譯法
- linux $# $0 $1 $2 $@ $* $$ $?的含義Linux
- Generator 函式的含義與用法函式
- async 函式的含義和用法函式
- Thunk 函式的含義和用法函式
- topas 中 PgSp 欄位的含義
- plsql下nocopy引數的含義SQL
- exists子句在Sql中的含義SQL
- JavaScript 中 void(0) 的含義JavaScript
- Linux的load average的含義Linux
- LIST INCARNATION OF DATABASE含義Database
- EXPLAIN結果含義(轉)AI
- Web含義是什麼Web
- 全概率公式及其含義公式