gpt4 book ai didi

javascript - 我可以将 Promises 传递给 jQuery.when() 还是只传递给 Deferreds?

转载 作者:搜寻专家 更新时间:2023-11-01 05:29:29 25 4
gpt4 key购买 nike

documentation for jQuery.when() 说这个函数接受 Deferreds。但是,它稍后还会说:

If a single argument is passed to jQuery.when() and it is not a Deferred or a Promise...

这似乎暗示它也可以采用 Promises。但是 Promises 不是 Deferreds——它们有 Deferred 方法的一个子集。我猜你可以说 Deferred 是 Promise,但 Promise 不是 Deferred。

问题:

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

最佳答案

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

If a single argument is passed to jQuery.when() and it is not a Deferred or a Promise, it will be treated as a resolved Deferred and any doneCallbacks attached will be executed immediately.

例如

$.when(1).then(function(data) {
alert(data)
})
<script src="https://code.jquery.com/jquery-git.js">
</script>

关于javascript - 我可以将 Promises 传递给 jQuery.when() 还是只传递给 Deferreds?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36434557/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com