JQuery AJAX не будет хранить данные в переменной - PullRequest
0 голосов
/ 10 октября 2018

Следующий код:

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 и results оба возвращаются с нулем, даже если result внутри успеха имеет строку json.Я не понимаю кое-что о переменных здесь.

1 Ответ

0 голосов
/ 11 октября 2018

Я не уважал асинхронную природу вызова 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
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...