我可以将 Promise 传递给 jQuery.when(),还是只传递 Deferreds?

2023-12-06

The 文档jQuery.when() 表示该函数采用 Deferreds。然而,它后来也说:

如果将单个参数传递给 jQuery.when() 并且它不是 Deferred 或 Promise...

这似乎意味着它也可以接受 Promise。但 Promise 不是 Deferreds——它们有 Deferred 方法的子集。我想你可能会说 Deferred 是 Promise,但 Promise 不是 Deferred。

问题:

  1. $.when() 可以接受 Promise 或 Deferreds 吗?这在我的测试中似乎有效。
  2. 文档中有错误吗?我认为应该说 $.when() 接受 Promises,而不仅仅是 Deferreds。

该文档试图传达的是$.when()将接受一个既不是jQuery.Deferred(), a jQuery.promise() nor a Promise;该值将被视为已解决jQuery.Deferred(),这在句子的下一部分中描述

如果将单个参数传递给jQuery.when()它不是一个 Deferred 或 Promise,它将被视为已解决的 Deferred 和 附加的任何完成回调将立即执行。

例如

$.when(1).then(function(data) {
  alert(data)
})
<script src="https://code.jquery.com/jquery-git.js">
</script>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我可以将 Promise 传递给 jQuery.when(),还是只传递 Deferreds? 的相关文章