我正在尝试使用promise进行几个AJAX调用(假设2)。基本上,我希望能够将两个响应合并在一起,对它们进行整体分析,然后吐出一个响应。现在,我有:
var responseArray = [];
for (var i=0; i<letsSayTwo; i++) {
responseArray.push(someAjaxCall(data));
};
responseArray.done(function(response) {
var spit = someAnalysis(response);
console.log(spit);
});
responseArray.fail(function(response) {
console.log('fail');
});
就目前而言,我在控制台中收到“未捕获的TypeError:对象[object
Array]没有方法’done’”错误。我认为我不能使用此方法是否正确?我调查了以下来自(http://gregfranko.com/blog/jquery-
best-practices/
)的代码,但似乎无法获得所需的响应。
$.when.apply(this, responseArray).then(function(response) {
console.log(response);
});
相反,我得到的是[响应,“成功”,响应],其中第一个响应是一个AJAX调用的正确返回响应,最后一个响应是实际的调用本身。我应该如何从两个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);
});
问题内容: 是否可以在PHP中处理来自AJAX请求的响应?我不是一个真正的JS开发人员,所以我正在用这个开发人员。 我有点黑了: }); 该功能似乎可以正常运行,它会向我发出有关正确数据的警报。 我需要能够将此输出给用户,以便可读。我发现很多指南都描述了替换数据,但就目前而言,直到选择child_id之前,没有数据。.然后我希望它以可读的方式显示上述数据。 我不知道如何开始使用视图文件(php)中
问题内容: 我正在尝试从数据库中将包含数据的对象数组放入jquery中以呈现在网站上。 例如:example.php 前index.html 输出: console.log(response); [“测试”,$ family:函数,$ constructor:函数,每个:函数,克隆:函数,干净:函数…] console.log(response [0] .example); 未定义 因此,从本质上
本文向大家介绍JS继承之借用构造函数继承和组合继承,包括了JS继承之借用构造函数继承和组合继承的使用技巧和注意事项,需要的朋友参考一下 借用构造函数继承 在解决原型中包含引用类型值所带来问题的过程中,开发人员开始使用一种叫做借用构造函数(constructor stealing)的技术(有时候也叫做伪造对象或经典继承)。这种技术的基本思想相当简单,即在子类型构造函数的内部调用超类型构造函数。
问题内容: 嗨,我有一个PHP代码返回一个数组。我希望能够在我的ajax成功函数中使用此数组,但是我不确定如何执行此操作。我尝试了以下方法,但是没有运气。 php代码: js代码: 问题答案: 您应该从服务器以JSON形式返回数据。 的PHP JS
问题内容: 我有由函数 .push 制成的数组。数组中的数据非常大。如何将此最佳方式发送到PHP脚本? script.php: 最好的方法是什么? 问题答案: 将您的数据字符串编码为JSON。 在你的PHP中 注意 通过POST发送数据时,它必须作为键值对。 从而 是错的。而是:
问题内容: 我在向Struts 2动作类发送数组参数时遇到问题。我正在使用Struts 2.1.8.1。 这是一些示例代码: 问题是通过jquery ajax方法发送数组时: 导致发生异常: 如何使用jQuery将数组发送到Struts2动作类?是否需要包含拦截器中的某些内容?还是在jQuery中有删除此选项的选项? 我在jQuery UI Sortable控件中也遇到了此问题,但是我使用正则表达