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

回到顶部