始终从javascript函数获取未定义的返回
我有这段代码,问题是我无法从结果文件中获取返回值:始终从javascript函数获取未定义的返回,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有这段代码,问题是我无法从结果文件中获取返回值: function resultit(id) { var res; $.ajax({ url: "result", type: 'POST', data: "id=" + id, success: function (result) {
function resultit(id) {
var res;
$.ajax({
url: "result",
type: 'POST',
data: "id=" + id,
success: function (result) {
res = result;
if (result == 0) {
alert('warning', 'FAILED !');
} else {
alert('danger', 'SUCCESS !');
}
}
});
return res;
}
alert(resultit(id)); // always undefined
您能建议修改以获得返回值吗?提前感谢。问题是您的res变量在异步回调中被分配了一个值,即ajax成功函数。这会影响到你的回报率;语句在为res赋值之前执行
要更清楚地了解正在发生的事情,请尝试以下操作
function resultit(id) {
var res;
$.ajax({
url: "result",
type: 'POST',
data: "id=" + id,
success: function (result) {
res = result;
alert('And this will happen third: ' + res); // ADD THIS LINE
if (result == 0) {
alert('warning', 'FAILED !');
} else {
alert('danger', 'SUCCESS !');
}
}
});
alert('This will happen second'); // AND THIS LINE
return res;
}
alert('This will happen first: ' + resultit(id)); // AND CHANGE THIS LINE
这3个警报将向您显示语句的执行顺序
这个问题有很多解决方案,所有这些都在上面的公认答案中列出 非常感谢您提供的信息,非常感谢。