问题描述
|
我需要为ajax查询的结果设置一个变量。我意识到我不能只返回成功函数的结果,因为这是一个异步调用。但想实现这一点将有一个回调函数,而不是设置为同步调用。
我想实现以下目标:
myMethod: function() {
var result = function(callback) {
this.getResults(params)
}
},getResults: function(params) {
$.ajax({
type: \'GET\',url: \'some/url\',data: params,success: function(data) {
callback(data).call();
}
});
}
结果=数据
我知道我的语法不正确,我尝试了很多变体,但还没有找到可行的方法。任何帮助将不胜感激。谢谢!
解决方法
你很亲密。将回调函数传递给
getResults
。
myMethod: function() {
this.getResults(params,callback);
},getResults: function(params,callback) {
$.ajax({
type: \'GET\',url: \'some/url\',data: params,success: function(data) {
callback(data);
}
});
}
请注意,由于您提到的异步性,我删除了var result =
只是因为它不起作用。如果您需要对ѭ4进行进一步处理,则必须在回调中进行。
, 您是否尝试将async设置为false?
myMethod: function() {
var result = function(callback) {
this.getResults(params)
}
},getResults: function(params) {
$.ajax({
type: \'GET\',async:false,//<-- Here
url: \'some/url\',success: function(data) {
callback(data).call();
}
});
}