2016-02-25 161 views
0

我試圖返回的希望,但是越來越undefined.Please發現代碼承諾返回未定義

fnCompare: function (paramA, paramB){ 

    var compObj = new CompFn({ 
     //Initiate some Values here 
    }); 


    return compObj.doCheck().then(function(data){  
     return data; 

    });  
} 

調用功能如下 -

asyncFunc.fnCompare(paramOne,paramTwo).then(function(data){ 

    console.log("Found differences: " + data.desc); 
    assert.equal(data.code,expectedValue); 

}, function(err) { 
     throw err; 
}); 

收到錯誤 - 無法再未定義的調用。任何幫助都會有用。我試圖用這裏提供的解決方案來實現這個,但也許做錯了什麼。

+5

聽起來像'doCheck()'沒有返回任何東西(使得它的結果爲'undefined')。你有'CompFn'的代碼,特別是'doCheck'嗎? – souldzin

回答

0

我的壞,得到了問題。 doCheck()函數期望回調,我的函數被設計爲接受來自doCheck()的承諾。 Promise.denodify(this.doCheck)解決了這個問題。