2011-04-18 352 views
1

這裏是我的代碼正在嘗試:如何獲取回調函數返回的值?

initData:function(period) 
{  
    this.getLoadObject('0',url, this.callbackFunction); 
}, 

我希望收到callbackFunction參數,我想通過initData返回一個返回值。

任何身體能幫助我,我不是很熟練使用JS。 我試過類似的question但沒有得到幫助。

回答

2

實際上,回調函數可能非常好地異步調用,也就是從調用返回到initData之後。

如果是同步不過,你可以這樣做:

initData:function(period) 
      { 
       var that = this; 
       var result; 
       this.getLoadObject('0',url, function() { 
        result = that.callbackFunction(arguments)); 
       }); 
       return result; 
      }, 
+0

不幸的是它的異步。任何其他解決方法? – 2011-04-18 13:58:06

+0

將回調作爲參數傳遞給initData – 2011-04-18 21:38:03

1

雖然不可能從您的代碼段告訴,它看起來像你的回調函數將被異步調用。如果是這種情況,您需要在回調函數本身中設置想要由initData填充的變量。

你也可以換回調函數:

var context = this; 
    this.getLoadObject('0',url, function() { 
     var returnedval = context.callbackFunction.apply(context,arguments); 
     context.SomeFuctionToUseValue(returnedval); 
    }); 
0

我想你可以使用變量函數外,這樣你就可以在回調函數外內訪問它。

var result = false; 
initData:function(period) 
{ 
    this.getLoadObject('0',url, this.callbackFunction); 
    //inside the callback you can modify the "result" then 
    return result; 
},