Promise對象---淺析

ES 6 中Promise對象的出現爲了解決JS異步編程的問題。

一個 Promise 對象可以理解爲一次將要執行的操作(常常被用於異步操作),使用了 Promise 對象之後可以用一種鏈式調用的方式來組織代碼,讓代碼更加直觀。而且由於 Promise.all 這樣的方法存在,可以讓同時執行多個操作變得簡單。

Promise對象的三種狀態:

    1.Fulfilled -----成功

    2.Rejected------失敗

    3.pending -----promise對象實例創建的初始狀態


Promise對象的兩個重要方法:----resolve(成功) && reject(失敗)

resolve 方法可以使 Promise 對象的狀態改變成成功,同時傳遞一個參數用於後續成功後的操作。

reject 方法則是將 Promise 對象的狀態改變爲失敗,同時將錯誤的信息傳遞到後續錯誤處理的操作。

function helloWorld (ready) {    

        return new Promise(function (resolve, reject) {        
        if (ready) {
            resolve("Hello World!");  //成功時調用的參數
        } else {
            reject("Good bye!");    //失敗時調用的參數
        }
    });
}

helloWorld(true).then(function (message) {
    alert(message);
}, function (error) {
    alert(error);
});


then方法: then(onFulfilld, onRejected) 

根據 Promise 對象的狀態來確定執行的操作,resolve 時執行第一個函數(onFulfilled),reject 時執行第二個函數(onRejected)。


function printHello (ready) {    

     return new Promise(function (resolve, reject) {        
         if (ready) {
            resolve("Hello");
        } else {
            reject("Good bye!");
        }
    });
}function printWorld () {
    alert("World");
}function printExclamation () {
    alert("!");
}

printHello(true)
    .then(function(message){
        alert(message);
    })
    .then(printWorld)
    .then(printExclamation);


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章