jQuery将ajax结果设置为外部变量回调

问题描述

| 我需要为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();
      }
   });
}