在node.js学习诺言期间我有一些疑问。
'的承诺'已在node.js中定义
但似乎它似乎使用额外的承诺框架,如Q,蓝鸟,RSVP等
有什么理由吗?
核心node.js函数不能支持promise.denodeify函数的承诺吗?
答案 0 :(得分:2)
我不能为Q说,但Bluebird比本机Promise快得多,并且在本机承诺之上提供了许多额外的功能。
这与人们使用lodash
的原因相同,尽管多年来已经[].map()
。
此外,Bluebird比原始Promise
实施具有更好的浏览器支持。
但是,您通常只在服务器上使用Bluebird。额外的功能和速度不值得用户下载的库的额外大小。
答案 1 :(得分:0)
嗯,promise是本机JavaScript对象。所有这些库都是用户态实现。例如,如果我们看蓝鸟它有:
.catch
,确保您不会错误地捕获程序员错误。.some
.any
.map
.filter
等等,可以轻松处理馆藏。.reflect
并同时检查承诺。throw
在当时的处理程序中,它不会吞下错误。 所以在tl; dr; :
现在,你是否应该使用它取决于你 - 包括库总是有开销 - 我作为核心贡献者有偏见。