【问题标题】:How to get value returned by Callback function?如何获取回调函数返回的值?
【发布时间】:2011-04-18 13:29:17
【问题描述】:

这是我正在尝试的一段代码:

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

我想从callBackFunction接收一个返回值,我想由initData返回。

任何人都可以帮助我,我对 JS 不是很精通。 我尝试了类似的question,但没有得到帮助。

【问题讨论】:

    标签: javascript function callback return-value


    【解决方案1】:

    其实回调函数也可以异步调用,也就是调用initData返回之后。

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

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

    【讨论】:

    • 将回调作为参数传递给 initData
    【解决方案2】:

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

    你也可以封装回调函数:

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 2011-11-13
        • 1970-01-01
        • 2014-05-28
        • 2018-06-25
        • 1970-01-01
        • 2020-01-12
        • 2020-01-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多