首页 >web前端 >js教程 >为什么我的 AJAX 函数不返回变量,如何使用回调修复它?

为什么我的 AJAX 函数不返回变量,如何使用回调修复它?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-08 20:17:17204浏览

Why Doesn't My AJAX Function Return a Variable, and How Can I Fix It Using Callbacks?

AJAX 函数未返回变量

将框架划分为多个文件时,可能会遇到变量未返回的问题来自 AJAX 函数。虽然变量在 JS 文件中不为空,但在主执行中显示为空。

原始函数模式:

var lock_get = 0;

function get_data(data, destination) {
  if (lock_get == 0) {
    lock_get = 1;
    $.ajax({
      type: "POST",
      url: destination,
      async: true,
      data: data,
      success: function(data) {
        lock_get = 0;
        if (data) {
          return data;
        }
      }
    });
  }
};

执行:

var test = get_data(data, destination);
notice(test);

在原始方法中,get_data 函数尝试返回AJAX 调用,但由于 AJAX 的异步特性而失败。

解决方案:使用回调

要解决此问题,您可以使用回调。通过将回调函数传递给 get_data,可以处理并返回结果:

function get_data(data, destination, callback) {
  if (lock_get == 0) {
    lock_get = 1;
    $.ajax({
      type: "POST",
      url: destination,
      async: true,
      data: data,
      success: function(data) {
        lock_get = 0;
        if (data && callback) {
          callback(data);
        }
      }
    });
  }
};

执行(带回调):

get_data(data, destination, function(test) {
  notice(test);
});

以上是为什么我的 AJAX 函数不返回变量,如何使用回调修复它?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn