任何jQuery版本是否符合Promise / A规范?

时间:2014-05-30 09:55:52

标签: jquery promise jquery-deferred

在阅读了几篇文章之后,我逐渐了解了jQuery中的promise实现。但我不确定是否有任何版本的jQuery是否符合Promise / A.

1 个答案:

答案 0 :(得分:17)

2015年更新:jQuery 3.0是Promises / A +兼容。请参阅this issue on GitHub,因此3.0 beta兼容3.0,当3.0出来时它也兼容。在此之前 - 以下仍然适用。

所有jQuery版本(最多3.0个)都有一个broken promise implementation

他们不能很好地处理错误,并且他们不能很好地混合和匹配其他实现。

然而,since version 1.8 .then exists,这意味着你可以使用jQuery实现作为承诺。这是尝试修复this bug并变得更多 Promises / A兼容。有an effort to improve interoperability这是承诺规范的全部内容,该努力的目标是2.2和1.12。

这意味着从2.2开始,jQuery promises将能够与其他promise库互操作,像任何promise库一样吸收可能的,并且根据规范行为不那么错误。

对于所有实际用途,您应该考虑另一种实现。

那里有许多好的承诺实施。例如Bluebird很快(比jQuery承诺快得多),具有低内存占用,具有惊人的堆栈跟踪和调试支持,并与jQuery承诺无缝地进行互操作并吸收它们。