为什么在使用promise时使用Q,bluebird框架?
Why it use Q,bluebird framework when using promise?
在 node.js 学习 promise 期间。我有点怀疑。
'promise' 已在 node.js
中定义
但通常它似乎使用额外的承诺框架,如 Q、bluebird、RSVP 等
有什么原因吗?
是核心node.js函数不支持promise with promise.denodeify函数的原因吗?
我不能说 Q,但 Bluebird 比原生 Promises 快很多,并且在原生 promise 之上提供了一堆额外的功能。
这与人们使用 lodash
尽管 [].map()
多年的原因相同。
此外,Bluebird 比本机 Promise
实现具有更好的浏览器支持。
不过,您通常只在服务器上使用 Bluebird。额外的功能和速度不值得用户下载库的额外大小。
嗯,promise 是原生 JavaScript 对象。所有这些库都是用户态实现。例如,如果我们查看蓝鸟,它有:
- 许多实用功能和帮助程序,让您的生活更轻松。
- 它输入了
.catch
以确保您不会错误地捕捉到程序员的错误。
- 它有
.some
.any
.map
.filter
等等,可以轻松处理集合。
- 它具有
.reflect
和同步检查承诺。
- 在 then 处理程序中
throw
ing 时默认情况下不会吞下错误。
- 内置协程(生成器)支持展平异步流。
- 它比不同浏览器中的原生承诺更快(通常在 4 到 10 倍之间)。
- 它提供了更多调试挂钩和更好的堆栈跟踪。
- 它针对常见的 promise 反模式提供警告。
- 它允许您覆盖调度程序,以便您可以确定它如何安排任务。
- 它支持具有合理语义的 promise 取消,这是为原生 promise 提出但尚未采用的。
所以在 tl;dr; :
- 速度更快。
- 它更易于调试。
- 它有更丰富的API。
现在,您是否应该使用它取决于您 - 包含库总是有开销 - 作为核心贡献者我有偏见。
在 node.js 学习 promise 期间。我有点怀疑。
'promise' 已在 node.js
中定义
但通常它似乎使用额外的承诺框架,如 Q、bluebird、RSVP 等
有什么原因吗?
是核心node.js函数不支持promise with promise.denodeify函数的原因吗?
我不能说 Q,但 Bluebird 比原生 Promises 快很多,并且在原生 promise 之上提供了一堆额外的功能。
这与人们使用 lodash
尽管 [].map()
多年的原因相同。
此外,Bluebird 比本机 Promise
实现具有更好的浏览器支持。
不过,您通常只在服务器上使用 Bluebird。额外的功能和速度不值得用户下载库的额外大小。
嗯,promise 是原生 JavaScript 对象。所有这些库都是用户态实现。例如,如果我们查看蓝鸟,它有:
- 许多实用功能和帮助程序,让您的生活更轻松。
- 它输入了
.catch
以确保您不会错误地捕捉到程序员的错误。 - 它有
.some
.any
.map
.filter
等等,可以轻松处理集合。 - 它具有
.reflect
和同步检查承诺。
- 它输入了
- 在 then 处理程序中
throw
ing 时默认情况下不会吞下错误。 - 内置协程(生成器)支持展平异步流。
- 它比不同浏览器中的原生承诺更快(通常在 4 到 10 倍之间)。
- 它提供了更多调试挂钩和更好的堆栈跟踪。
- 它针对常见的 promise 反模式提供警告。
- 它允许您覆盖调度程序,以便您可以确定它如何安排任务。
- 它支持具有合理语义的 promise 取消,这是为原生 promise 提出但尚未采用的。
所以在 tl;dr; :
- 速度更快。
- 它更易于调试。
- 它有更丰富的API。
现在,您是否应该使用它取决于您 - 包含库总是有开销 - 作为核心贡献者我有偏见。