jQuery-延迟的Ajax obj-无法访问变量

时间:2018-09-03 16:43:26

标签: jquery ajax deferred

我试图推迟每个数组的多个功能(AJAX和其他功能)。

ajax调用成功,但是如果我尝试访问变量,则只会得到未定义的结果。

每个console.log()可以看到整个对象,并且每个调试器都可以访问它。

此外,在延迟数组第一步结束之前,我还收到了Step2的消息。

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"))

0 个答案:

没有答案