我试图推迟每个数组的多个功能(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"))