Jak*_*son 10 javascript node.js promise
既然ES6是Node 4.x的官方标准,你如何使用Promises?模块(例如本机fs模块)是否自动与Promises一起使用?或者必须专门编写模块以与Promises一起使用?你怎么知道什么可以使用Promise而你不能使用什么?
已经有很多不同的Promise实现(Q,Bluebird等),我很困惑从Node 4.x中的本机Promise开始.
jam*_*ase 16
你如何使用Promises?
您可以使用新的构造函数Promise来使用"native"promises.API的基础知识,可以发现在MDN过,并承诺的深入研究可以的HTML5Rocks找到.
模块(例如本机fs模块)是否自动与Promises一起使用?
他们没有,但制作包装并不困难.当然,为整个Node API执行此操作可能有点单调乏味.
OP中的一条评论提到了Bluebird的PromisifyAll,这似乎是将整个模块转换为使用Promise的神奇方法.漂亮!
我希望在即将推出的Node版本中有一些Promise-ified API,但我不确定这一点.围绕这个可能存在问题或讨论......也许在io.js项目上.如果我找到任何东西,我会调查并更新.
至于为什么我们有Promises 和回调式API?这可能是因为添加Promise比添加Promises更容易,比如删除回调更可能会破坏API.
或者必须专门编写模块以与Promises一起使用?
他们是这样.
你怎么知道什么可以使用Promise而你不能使用什么?
该文件总是去API问题的最佳场所.我不知道返回Promises的任何东西,但我确实在我的日常工作中使用了一小部分Node API.
已经有很多不同的Promise实现(Q,Bluebird等),我很困惑从Node 4.x中的本机Promise开始.
您对这些不同的实现有任何具体问题吗?我想到的方式是本机Promise非常小.它们足以使异步代码更清洁,但它们没有多余的装饰.你提到的其他图书馆做了两件事:
Node中不再需要第一个用例.所以这是一个确定你是否想要/需要任何这些奇特功能的问题.
如果这个答案不能令人满意,请告诉我,我会尝试用更多信息更新它!