javascript - jQuery when() 函数 : does it fire before each single done?

标签 javascript jquery

我有一个错误,我怀疑是由于我对 jQuery 的了解不足。 该场景在下面的片段中进行了描述:

var towait = [];

towait.push($.get('someurl',function(data){ dosomething...}));
towait.push($.get('someurl',function(data){ dosomething...}));
....
towait.push($.get('someurl',function(data){ dosomething...}));

$.when(towait).done(function(){ dosomething else});

症状是 dosomething else 在 dosomething 调用之前执行(也许我错了,我正在寻找错误)我的假设是否正确?在执行 $.get(...,function(){}) 之前,延迟似乎在 when 中加入了吗? 如果是这样,有什么方法可以改变这种行为?

最佳答案

when() 的文档中方法,我认为只有参数延迟对象。这里你传递了一个不是延迟对象的数组。您希望将每个请求作为参数传递。

试试这个:

$.when.apply($,towait).done(function(){ dosomething else});

DEMO

当然,如果一个请求被拒绝,$.when 回调会在任何其他请求完成之前触发。

关于javascript - jQuery when() 函数 : does it fire before each single done?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16957619/

相关文章:

javascript - 使用 ng-style 进行背景渐变时出现 AngularJS 语法错误

javascript - Youtube API-无法将视频添加到播放列表

jquery - 如何在 jquery.validate() 远程类规则中获取当前字段名称

jquery - jquery 在输入框焦点/模糊上的奇怪行为

jquery - 如何使用 JQuery 或 CSS 在 IE、chrome 等按钮上闪烁文本

javascript - 如何创建可以从 React js 中的状态更改的动态表单?

javascript - 将数据从对象内的对象数组操作到数组内的对象数组

javascript - 如何从 IE 中的提交按钮和超链接中删除虚线边框

jquery - jQuery $ 是什么意思

javascript - Location.country_code - Fancybox,现在弹出