在AJAX函数中返回Javascript中的对象

时间:2015-05-25 23:55:48

标签: javascript jquery ajax

我正在尝试从函数中的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;
    }
});

1 个答案:

答案 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"
        });
    }
});