为了账号安全,请及时绑定邮箱和手机立即绑定

将Deferreds数组传递到$.When()

将Deferreds数组传递到$.When()

鸿蒙传说 2019-06-09 16:02:42
将Deferreds数组传递到$.When()下面是一个虚构的例子:http://jsfiddle.net/adamjford/YNGcm/20/HTML:<a href="#">Click me!</a><div></div>JavaScript:function getSomeDeferredStuff() {     var deferreds = [];     var i = 1;     for (i = 1; i <= 10; i++) {         var count = i;         deferreds.push(         $.post('/echo/html/', {             html: "<p>Task #" + count + " complete.",             delay: count        }).success(function(data) {             $("div").append(data);         }));     }     return deferreds;}$(function() {     $("a").click(function() {         var deferreds = getSomeDeferredStuff();         $.when(deferreds).done(function() {             $("div").append("<p>All done!</p>");         });     });});我要“全部完成!”在所有延迟任务完成后出现,但是$.when()似乎不知道如何处理延迟对象数组。“都完了!”首先发生的原因是数组不是延迟对象,因此jQuery继续并假设它刚刚完成。我知道可以将对象传递到函数中,比如$.when(deferred1, deferred2, ..., deferredX)但目前还不清楚,在我试图解决的实际问题中,有多少延迟对象将被执行。
查看完整描述

3 回答

?
素胚勾勒不出你

TA贡献1827条经验 获得超9个赞

您可以应用when方法添加到数组中:

var arr = [ /* Deferred objects */ ];$.when.apply($, arr);

如何处理jQueryDeferreds数组?


查看完整回答
反对 回复 2019-06-09
  • 3 回答
  • 0 关注
  • 783 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信