簡述什麼是Promise及其作用,本質
什麼是Promise
所謂 Promise,就是一個物件,用來傳遞非同步操作的訊息。它代表了某個未來才會知道結果的事件(通常是一個非同步操作),並且這個事件提供統一的 API,可供進一步處理。
Promise的作用
Promise的出現主要是解決地獄回撥的問題,比如你需要結果需要請求很多個介面,這些介面的引數需要另外那個的介面返回的資料作為依賴,這樣就需要我們一層巢狀一層,但是有了Promise 我們就無需巢狀
Promise的本質
我認為Promise的本質就是分離了非同步資料獲取和業務邏輯
基本的 api
Promise.resolve()
Promise.reject()
Promise.prototype.then()
Promise.prototype.catch()
Promise.all() // 所有的完成
Promise.all([p1,p2,p3])
基礎案例
Promise 建構函式接受一個函式作為引數,該函式的兩個引數分別是 resolve 方法和 reject 方法。
var promise = new Promise(function(resolve, reject) {
if (/* 非同步操作成功 */){
resolve(value);
} else {
reject(error);
}
});
promise.then(function(value) {
// success
}, function(value) {
// failure
});
ajax的傳統寫法
getData(method, url, successFun, failFun){
var xmlHttp = new XMLHttpRequest();
xmlHttp.open(method, url);
xmlHttp.send();
xmlHttp.onload = function () {
if (this.status == 200 ) {
successFun(this.response);
} else {
failFun(this.statusText);
}
};
xmlHttp.onerror = function () {
failFun(this.statusText);
};
}
改為 Promise寫法
getData(method, url){
return new Promise(function(resolve, reject){
var xmlHttp = new XMLHttpRequest();
xmlHttp.open(method, url);
xmlHttp.send();
xmlHttp.onload = function () {
if (this.status == 200 ) {
resolve(this.response);
} else {
reject(this.statusText);
}
};
xmlHttp.onerror = function () {
reject(this.statusText);
};
})
}
getData('get','www.xxx.com').then(successFun, failFun)
相關文章
- Rollup的本質是什麼?
- 反向代理的本質是什麼?
- iOS-block本質是什麼?iOSBloC
- 加密貨幣的本質是什麼?加密
- 敏捷SAFe的本質是什麼?-shalloway敏捷
- 什麼叫PMP?專案管理的本質是什麼?專案管理
- 領域模型的核心本質是什麼?模型
- 技術實力的本質是什麼?
- 用生活案例講述:erp系統是什麼?有哪些作用?
- 簡述Helm及其優勢
- 什麼是zoom?它有什麼作用?OOM
- Java中equals與==的本質區別是什麼?Java
- 淺談人才信用資本探索,大家信夫的本質是什麼
- 簡述SSL證書的作用
- bucket是什麼意思?有什麼作用?
- Java swing是什麼?有什麼作用?Java
- 電話營銷機器人的本質是什麼?機器人
- 什麼是@Component,@Component的作用是什麼
- 原生IP是什麼意思?有什麼作用?
- DigiCert是什麼意思 具備什麼作用
- 物理防火牆是什麼?有什麼作用?防火牆
- Linux中什麼是inode?有什麼作用?Linux
- SSL證書是什麼?有什麼作用?
- ping命令的作用和原理簡述
- 簡述 HTTP 快取首部及其行為HTTP快取
- AI智慧與大資料的本質區別是什麼?AI大資料
- STM32暫存器的本質到底是什麼???
- 精益生產流程最佳化的本質是什麼
- 簡述為什麼通訊原理中正數的相頻是0
- 描述下什麼是域名解析?簡述它的基本過程
- 什麼是熱插拔?其功能作用是什麼?
- JQuery中$(document)是什麼意思有什麼作用jQuery
- Linux中gpgcheck是什麼意思?作用是什麼?LinuxGC
- Linux裡面kdump是什麼?有什麼作用?Linux
- ERP系統是什麼?能起到什麼作用?
- OV SSL證書是什麼?有什麼作用
- Linux中公有云是什麼?有什麼作用?Linux
- 車上HOLD是什麼意思,AUTO HOLD是什麼功能,有什麼作用?
- 前端開發技術-promise是什麼?前端Promise