Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何获取回调函数返回的值?_Javascript_Function_Callback_Return Value - Fatal编程技术网

Javascript 如何获取回调函数返回的值?

Javascript 如何获取回调函数返回的值?,javascript,function,callback,return-value,Javascript,Function,Callback,Return Value,以下是我正在尝试的代码: initData:function(period) { this.getLoadObject('0',url, this.callbackFunction); }, 我希望从callBackFunction接收返回值,我希望通过initData返回该值 有人能帮我吗,我对JS不太精通。 我尝试了类似的方法,但没有得到帮助。实际上,回调函数很可能是异步调用的,也就是在调用initData返回之后 但是,如果它是同步的,则可以执行以下操作: initDat

以下是我正在尝试的代码:

initData:function(period)
{    
    this.getLoadObject('0',url, this.callbackFunction);
},
我希望从callBackFunction接收返回值,我希望通过
initData
返回该值

有人能帮我吗,我对JS不太精通。
我尝试了类似的方法,但没有得到帮助。

实际上,回调函数很可能是异步调用的,也就是在调用initData返回之后

但是,如果它是同步的,则可以执行以下操作:

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

尽管无法从代码片段中分辨,但回调函数似乎将被异步调用。如果是这种情况,则需要在回调函数本身中设置要由initData填充的变量

您还可以包装回调函数:

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

我认为可以在函数外部使用变量,这样就可以在回调函数内部和外部访问它

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

将回调作为参数传递给initData