javascript - 我有一个延迟对象数组,如何将 then 与 jQuery.when 一起使用?它不需要数组

标签 javascript jquery jquery-deferred

var promises = [promise1, promise2, promise3... promiseN];

如何使用?

$.when(promise1(), promise2(), promise3(), ...promiseN()).then(function(){ doSomething()});

我宁愿传递数组...有什么想法可以正确地做到这一点吗?显然这行不通。

 $.when(promises).then(function(){ doSomething()});

做得很奇怪,失败,总是全部接受数组。

谢谢, 〜ck

最佳答案

我不熟悉$.when()但你应该能够使用 javascript 函数 apply() 做你想做的事。大致如下:

$.when.apply($, promises).then(function(){ doSomething()});

第一个参数是在函数调用中绑定(bind)到“this”的内容(类似于 $.proxy() 在 jquery 中的作用),第二个参数是要传递给函数的参数数组。

例如:

myobj.myfunc.apply(myobj, [1,2,3]);
//is the same as
myobj.myfunc(1,2,3);

关于javascript - 我有一个延迟对象数组,如何将 then 与 jQuery.when 一起使用?它不需要数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9137519/

相关文章:

javascript - 为什么 SlideDown 是从左上角展开图像而不是整个宽度?

php - 如何在jeditable中发送多个变量?

javascript - 等待过去的功能完成以开始新的功能

javascript - 使 <a> 标签悬停改变鼠标样式

javascript - 将 jQuery UI 从 1.8 更新到 1.12 时,Catcomplete 小部件停止工作

javascript - 确定错误是浏览器的错误还是我自己的错误的工作流程是什么?

jquery - 删除 div 内每个元素的所有属性

javascript - 菜单 - 在整个菜单项下显示子菜单项 - HTML/CSS

jquery - Angular 中的 jQuery.when() 相当于什么

jQuery 延迟 AJAX 调用 : possible scope issue