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中文网其他相关文章!