热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用数组的AJAX承诺

使

就目前而言,我Uncaught TypeError: Object [object Array] has no method
'done'
在控制台中遇到错误。我认为我不能使用此方法是否正确?

不是在数组上,是的。您只能在Promise和Deferred对象上调用此方法,例如由$.when.apply(this, responseArray)

…但是我似乎无法获得所需的回复。相反,我得到的是[response, "success",
response]
第一个响应是其中一个AJAX调用的正确返回响应,而最后一个响应是实际调用本身。

如docs$.when中所述,它使用
解析结果promise-
当输入promise本身确实产生多个值(例如,$.ajax确实)时,每个参数都是各自promise解析的参数对象。您只能使用来获得第一个参数,但是回调responseresponseArray.lengthletsSayTwo)个参数。

我应该如何从两个AJAX调用中获得正确的响应?

您要从每个arguments对象中提取第一项(响应数据),因此可以使用map

$.when.apply(this, responseArray).done(function() {
var respOnses= $.map(arguments, function(args) { return args[0]; }),
spit = someAnalysis(responses);
console.log(spit);
}).fail(function(jqXHR, textStatus, errorThrown) {
console.log('fail: '+textStatus);
});





推荐阅读
author-avatar
钟孝健V
这个家伙很懒,什么也没留下!
RankList | 热门文章