ES6 promise理解

Ll1994693發表於2020-09-24

參考大佬文章對promise的理解,請點選這裡
promise就是為了解決多層函式或者方法的巢狀而存在的。

簡單粗暴的理解一下:

promise它就是把一層一層向內巢狀呼叫的方法,給拉成一串連續呼叫的方法,每個巢狀呼叫的方法,都會對呼叫者返回this,也就是返回自身,也就是帶著上一次呼叫的結果,進入下一次巢狀呼叫的環節。
舉個簡單粗暴的例子:

普通js的寫法
function xx (){
	function aa (){
		function bb(){
			.....
			一層一層的巢狀的呼叫下去,非常的繁瑣 
		}
	}
}
promsie的實現思路
var abc = new promsie() 
abc.xx()
abc先呼叫xx()方法,帶著執行的結果 返回this
abc.xx().aa() 再呼叫aa
abc再呼叫上一次的結果呼叫bb()方法
promise的寫法就是這樣的
abc.xx().aa().bb()


promise 連續呼叫上一次的結果用的方法是.then()
也就是
abc.then().then().then()......then()不斷向下

在es6當中 promise正式成為的原生的東西,
Promise 物件用於一個非同步操作的最終完成(或失敗)及其結果值的表示。簡單點說,它就是用於處理非同步操作的,非同步處理成功了就執行成功的操作,非同步處理失敗了就捕獲錯誤或者停止後續操作。
一般形式展示為:

new Promise(
    /* executor */
    function(resolve, reject) {
        if (/* success */) {
            // ...執行程式碼
            resolve();
        } else { /* fail */
            // ...執行程式碼
            reject();
        }
    }
);

相關文章