首页 > web前端 > js教程 > 如何将延迟对象数组传递给 jQuery 的 `$.when()`?

如何将延迟对象数组传递给 jQuery 的 `$.when()`?

Mary-Kate Olsen
发布: 2024-12-09 21:57:13
原创
632 人浏览过

How Can I Pass an Array of Deferred Objects to jQuery's `$.when()`?

将延迟数组传递给 $.when()

处理一组复杂的异步任务时,可以方便地将 Deferred 对象数组传递给 $.when() 方法,以在所有任务完成时发出通知。但是,默认情况下,$.when() 期望单独的 Deferred 对象作为单独的参数,如果 Deferred 对象的数量未知,则这可能不切实际。本文使用 Function.prototype.apply 提供了此问题的解决方案。

解决方案:

要将 Deferred 对象数组传递给 $.when(),请使用Function.prototype.apply 方法如下:

$.when.apply($, my_array).then( ___ );
登录后复制

这允许您传递 Deferred 对象的数组作为 $.when() 的单个参数。下面的示例代码演示了这种方法:

var deferreds = getSomeDeferredStuff();
$.when.apply($, deferreds).done(function() {
    $("div").append("<p>All done!</p>");
});
登录后复制

ES6:

在 ES6 中,您可以使用扩展运算符 (...) 代替Function.prototype.apply:

$.when(...my_array).then( ___ );
登录后复制

注意:

需要注意的是,提供给 .then() 方法的处理函数应该处理参数数组检索每个承诺的结果。由于处理程序需要的形式参数的数量可能事先未知,因此处理程序必须相应地处理参数数组。

以上是如何将延迟对象数组传递给 jQuery 的 `$.when()`?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板