理解 $.when() 中的延迟数组处理
在类似于提供的 JSFiddle 中演示的场景中,一组生成延迟任务并将其传递给 $.when()。然而, $.when() 默认情况下需要单独的延迟对象作为参数,并且可能无法有效地处理数组。
利用 Function.prototype.apply
要解决这个问题,您可以使用 Function.prototype.apply 将延迟数组作为单独的参数传递。这可以通过以下语法来实现:
$.when.apply($, my_array).then( ___ );
此方法会将数组扩展为逗号分隔的各个延迟列表,允许 $.when() 正确处理它们。
使用 ES6 Spread 运算符
或者,如果您使用的是 ES6 或更高版本,您可以使用扩展运算符 (...) 更简洁地实现相同的效果:
$.when(...my_array).then( ___ );
在 .then() 处理程序中处理动态参数计数
由于 .then() 处理程序所需的参数数量事先未知,因此建议处理参数数组以提取每个 Promise 的结果。这可以在处理函数本身内完成。
以上是如何使用 jQuery 的 $.when() 有效处理延迟对象数组?的详细内容。更多信息请关注PHP中文网其他相关文章!