JavaScript变量未从AJAX函数返回
随着框架的发展,我决定将其拆分为文件,而不是将其保留在主设计文件中。但是通过这样做,函数的返回不会返回任何值。
数据不为空-如果我警告js文件中的值,它们在那里!
功能:
1 .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);
并且测试是空的…我已经尝试了不同的编写方式,但是我想我误解了js的可能性吗?
回答:
您不能这样做:由于调用是异步的,因此get_data函数无法返回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);
});
以上是 JavaScript变量未从AJAX函数返回 的全部内容, 来源链接: utcz.com/qa/402734.html