我正在尝试从函数中的AJAX rest响应中返回结果。当我使用以下代码时,我从警报获得的结果是0,这是我初始化的。是否在响应回来之前返回结果?如果有,是否有办法等到响应完成后返回结果?
$(document).ready(function() {
var newcoord = setCoordinates();
alert(newcoord.lat);
function setCoordinates(){
var latlong = {lat: 0, ltd: 0};
$.ajax({
url: "https://api.wheretheiss.at/v1/satellites/25544"
}).then(function(data) {
latlong.lat = data.latitude;
latlong.ltd = data.longitude;
});
return latlong;
}
});
答案 0 :(得分:1)
由于你的函数将在ajax调用结束之前返回,因此肯定无法工作。根据你的表现,这可以做到这一点:
$(document).ready(function() {
var ajaxCall = setCoordinates();
ajaxCall.done(function(data) {
alert(data.lat);
});
function setCoordinates(){
return $.ajax({
url: "https://api.wheretheiss.at/v1/satellites/25544"
});
}
});