【发布时间】:2012-11-16 15:19:47
【问题描述】:
我正在调查BreezeJs 并且有示例使用Q.js 来承诺处理异步调用。 John Papa 也在使用 Q。JQuery has promises as well。两者有什么区别?
【问题讨论】:
-
只是我的 $.02。在为我们的 promise 实现选择 Q 之前,我研究了轻量级并查看了 jQuery 和 Q。当时,我试图了解其他图书馆作者正在使用什么以及为什么。我的结论是 Q 被压倒性地选择了,部分原因是它是一个没有 jQuery 重量的独立库,但也因为 jQuery 实现与 Q 之间存在许多细微但令人讨厌的差异,其中 jQuery 的实现并不严格符合 Promises/A 或 Promises/B。
-
附带说明一下,我注意到谷歌创建了一个嵌入式版本的 Q 以在 angularjs 中使用。
-
在某些情况下促使我使用 Q 的最大区别是,当我只需要 promises 时,Q 非常适合,而 jQuery 则更多。所以当你需要的只是承诺时,Q 是轻量级的。但是当我也经常使用 jQuery 时,我会使用 jQuery 的 Promise,因为我已经可以使用它们了。换句话说,两者都很棒:)
-
如果你想要好的性能,我不推荐 Q 和 jQuery,看看 github.com/petkaantonov/bluebird 可以在这里看到基准:github.com/petkaantonov/bluebird/blob/master/benchmark/stats/…
标签: javascript jquery breeze promise q