如何获取Callback函数返回的值?

时间:2011-04-18 13:29:18

标签: javascript function callback return-value

这是我正在尝试的代码:

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

我想从callBackFunction收到一个返回值,我希望initData返回该值。

任何身体都可以帮助我,对JS不是那么精通。 我尝试过类似的question,但没有得到帮助。

3 个答案:

答案 0 :(得分:2)

实际上,回调函数很可能是异步调用的,即从调用initData返回之后。

如果它是同步的,你可以这样做:

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

答案 1 :(得分:1)

虽然从代码片段中无法分辨,但看起来您的回调函数将被异步调用。如果是这种情况,您需要在回调函数本身中设置要由initData填充的变量。

你也可以包装回调函数:

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

答案 2 :(得分:0)

我认为您可以在函数外部使用变量,因此您可以在回调函数内部和外部访问它。

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