jQuery AJAX不会将数据存储在变量中

时间:2018-10-10 18:10:55

标签: javascript jquery ajax global-variables

以下代码:

jQuery.extend({
    getAnalytics: function() {
        var result = null;
        $.ajax({
            type: 'POST',
            dataType: 'json',
            url: '/master/analytics/reports',
            success: function(data) {
                result = data;
                console.log(result);
            }
        });
        console.log(result);
        return result;
    }
});

var results = $.getAnalytics();
console.log(results);

在控制台中显示:

{20181002: 0, 20181003: 0, 20181004: "2", 20181005: "9", 20181006: 0, 20181007: 0, 20181008: "2", 20181009: "3", 20181010: "1"}
null
null

即使成功内部的result有一个json字符串,我也无法弄清楚我要求resultsresult都返回null的错误。我对这里的变量不了解。

1 个答案:

答案 0 :(得分:0)

我不尊重AJAX调用的异步特性。是它的名字。

我通过以下操作对其进行了修复。

success: function(data) {
            result = data;
            functionToPerform();
        }

function functionToPerform() {
    // code that depends on the data sent back from the Ajax request
    // fire this only after a successful AJAX request
}