栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用数组的AJAX承诺

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用数组的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解析的参数对象。您只能使用来获得第一个参数,但是回调
response
responseArray.length
letsSayTwo
)个参数。

我应该如何从两个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);});


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/406670.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号