【问题标题】:What's the difference between Q, Bluebird, and Async? [closed]Q、Bluebird 和 Async 有什么区别? [关闭]
【发布时间】:2015-12-13 16:13:38
【问题描述】:

我开始研究管理 node.js 应用程序流的不同方法,但我似乎找不到这个问题的令人满意的答案。

Q、Bluebird 和 Async 之间有什么区别,我应该将哪个用于什么目的?

【问题讨论】:

  • qbluebird 是承诺库。 async 是一个用于异步控制流的实用程序库,不使用 Promise。

标签: node.js concurrency promise q bluebird


【解决方案1】:

Q 和 Bluebird 是 Promise 库。他们将 Promise 功能添加到没有内置 Promise 的环境(例如旧版浏览器),并为已经有 Promise 的环境(特别是 Bluebird)添加新的 Promise 功能。 Bluebird 尝试遵循和扩充 ES6 承诺标准,而 Q 使用自己的 API。这些库中的任何一个都可用于帮助您管理和协调异步操作。

Async 是一个用于管理不基于 Promise 的使用或设计的异步操作的库。

我建议,如果决定是使用 Async 还是 Bluebird/Q,您首先要决定是否要使用 Promise。如果是,您决定哪个库更能满足您的需求 Bluebird 或 Q。如果不是,那么 Async 是您的选择。

在我看来,由于 JavaScript 中的 Promise 已经在 ES6 中标准化,我认为我们将看到越来越多的外部 API 转向 Promise,它将成为未来许多情况下与异步操作交互和管理的事实上的方式。此外,它捕获和传播异步错误(包括异步回调中抛出的异常)的能力在复杂的异步流程中非常非常有价值。

【讨论】:

    猜你喜欢
    • 2020-12-11
    • 1970-01-01
    • 2013-08-11
    • 1970-01-01
    • 2019-08-19
    • 2011-10-14
    • 2021-08-25
    • 1970-01-01
    相关资源
    最近更新 更多