1. 程式人生 > >nodejs之promise書寫規範

nodejs之promise書寫規範

 nodejs的特點是非同步,nodejs不能等待,如果你實現某件需要等待的事情,你不能停在那裡一直等待結果回來,相反,底線是使用回撥callback:你定義一個函式,這個函式只有等到結果可用時才能被呼叫。所以為了解決這種單一的回撥模式,我們引入了promise規範

promise是什麼,能解決什麼問題?

1、promise其實是一個物件,他只有三中狀態,處理中、完成和拒絕。

2、一個promise是一個帶有".then()"方法的物件,其代表的是一個操作的結果可能還沒有或不知道,無論誰訪問這個物件,都能夠使用".then()"方法加入回撥等待操作出現成功結果或失敗時的提醒通知。

下面用具體的程式碼解釋:

var Q = require("q");
var Test = {
fun1: function(data){
var deferred = Q.defer();
deferred.resolve(data);
return deferred.promise;
},
fun2: function(data){
var deferred = Q.defer();
deferred.resolve(data + "fun2");
return deferred.promise;
},
    fun3: function(data){
        var deferred = Q.defer();
        deferred.resolve(data + "fun3");
        return deferred.promise;       
    },
};
module.exports = Test;

呼叫方法

Test.fun1('123').then(Test.fun2).then(Test.fun3).done(function(data){
    console.log(data);
});

//輸出結果如下:

123fun2fun3