由于某种原因,我的函数在看似独立运行时返回未定义。
function getDomains() {
$.ajax({
url: '/rewrites/cgi-bin/ajax.pl?action=listdomains',
dataType:'json',
async: false,
success: function( data ) {
if (data.error) {
alert(data.error);
}
else {
alert(data.domains);
return(data.domains);
}
}
});
}
alert(getDomains());
我的第一个警报显示一个已填充的列表,但第二个警报未定义。这有什么意义吗?
最佳答案
您在调用成功的函数中。这就是为什么您没有从 getDomains 函数中获得结果的原因。将其分配给变量并在 ajax 调用后返回该变量。
function getDomains() {
var results;
$.ajax({
url: '/rewrites/cgi-bin/ajax.pl?action=listdomains',
dataType:'json',
async: false,
success: function( data ) {
if (data.error) {
alert(data.error);
}
else {
alert(data.domains);
results = data.domains;
}
}
});
return results;
}
alert(getDomains());
关于javascript - 返回的数组未定义,不是异步的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16838886/