【发布时间】:2015-03-03 15:26:57
【问题描述】:
我有一个问题,如果我调用包含 Ajax 调用的函数并返回这些调用的结果,调用者总是在 Ajax 调用返回之前收到一个空返回值。
小提琴示例:ajax null return value example
var returnVal;
$.when(fun()).done(function(a1)
{
console.log("finished ajax");
returnVal = a1;
});
alert(returnVal);
function fun() {
$.ajax({//this ajax call should return an ip
url: 'http://ip.jsontest.com/',
data: "",
dataType: 'json',
success: function (data) {
console.log("fun(id) ajax success");
return data;
}
});
}
【问题讨论】:
-
fun没有返回任何东西,所以when正在等待undefined。添加返回语句。 -
添加返回并不能解决问题,当立即返回 null 而无需等待 ajax 完成。
标签: jquery ajax asynchronous concurrency