问题:
考虑以下代码,其中列表创建了 的延迟任务:
var deferreds = getSomeDeferredStuff(); $.when(deferreds).done(function() { console.log("All done!") });
但是, “都完成了!”在所有延迟任务完成之前记录。如何将一组 deferred 传递给 $.when() 并确保它等待所有任务完成?
答案:
传递一组值到需要单独参数的函数,请使用 Function.prototype.apply:
$.when.apply($, deferreds).then(function() { console.log("All done!") });
Here's a代码分解:
或者,在 ES6 和新版本中,您可以使用扩展运算符:
$.when(...deferreds).then(function() { console.log("All done!") });
在任何一种情况下,处理程序都会收到一组结果,每个延迟一个。处理这个数组以获得你需要的值。
以上是如何确保 $.when() 等待数组中的所有延迟任务?的详细内容。更多信息请关注PHP中文网其他相关文章!