【问题标题】: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;
},
【解决方案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;
},