有人可以帮助我了解在ES6 Harmony中使用Koa.js和Bluebird.js的区别。具体来说,
co( function * () {
//stuff
} );
相比于,
Promise.coroutine( function * () {
//stuff
} );
似乎Koa应该使用Bluebird而不是重新创建轮子。有什么不同?
有人可以帮助我了解在ES6 Harmony中使用Koa.js和Bluebird.js的区别。具体来说,
co( function * () {
//stuff
} );
相比于,
Promise.coroutine( function * () {
//stuff
} );
似乎Koa应该使用Bluebird而不是重新创建轮子。有什么不同?
就目前而言,不同之处在于Koa不仅可以实现承诺,而且还可以提供更多收益。
但是,添加了一项功能,该功能不仅允许产生回调,重击等,而且还允许您想到任何随便的东西。蓝鸟也是最快的。因此,在此版本之后,koa应该确实只是在使用蓝鸟。
参见https://github.com/petkaantonov/bluebird/issues/131#issuecomment-36975495
有一个关于使用Bluebird的请求。那里的评论应该使某些事情更清楚。co依赖于0.11中提供的本机V8 Promises功能,而Bluebird的目标是也可以在0.10中很好地工作。您可以在低于0.11的版本中使用co,但是Bluebird将是一个更好的选择。在该链接中,您可以看到基准测试表明co不比Bluebird慢,因此该参数是错误的。
另外,只有300行代码,坚持使用KISS通常是一个好习惯。因此,它不是在重新创建轮子。它正在减肥。您可以在几分钟内阅读代码并了解它的作用。我花了一个小时来阅读Bluebird API文档。还提到V8的实现已中断,因此Bluebird可能会在过渡期内使用。