jQuery - отложенный объект ajax - не может получить доступ к переменной - PullRequest
0 голосов
/ 03 сентября 2018

Я пытался отложить несколько функций (AJAX и другие) для каждого массива.

Вызов ajax прошел успешно, но если я пытаюсь получить доступ к переменной, я получаю только неопределенное значение.

За console.log() Я мог видеть весь объект и доступ к нему для каждого отладчика.

Кроме того, я получил сообщение шага 2 до конца первого шага отложенного массива.

var deferredObj = [];

deferredObj.push({
    "data": function() {
        return $.ajax({
            url: "/api/test",
            type: "POST",
            data: {
                "condition": "2"
            },
            contentType: "application/json",
            dataType: "json"
        })
    },
    "additional_text": "Testtext"
})

deferredObj.push({
    "data": function() {
        return $.ajax({
            url: "/api/test2",
            type: "POST",
            data: {
                "condition": "10"
            },
            contentType: "application/json",
            dataType: "json"
        })
    },
    "additional_text": "Testfunc 2"
})

$.when.apply($, deferredObj)
    .done(function() {
        $.each(arguments, function(index, arg) {
            console.log(arg.data.call().responseJSON); //undefined
            //arg.data.call() => {readyState: 1, getResponseHeader: ƒ, getAllResponseHeaders: ƒ, setRequestHeader: ƒ, overrideMimeType: ƒ, …}
        });
    })
    .done(console.log("Step2"))
...