Co.js和bluebird.js –有什么区别?

ecmascript-和谐 KoaJS

斯丁

2020-04-07

有人可以帮助我了解在ES6 Harmony中使用Koa.js和Bluebird.js的区别。具体来说,

co( function * () {
  //stuff
} );

相比于,

Promise.coroutine( function * () {
  //stuff
} );

似乎Koa应该使用Bluebird而不是重新创建轮子。有什么不同?

第4146篇《Co.js和bluebird.js –有什么区别?》来自Winter(https://github.com/aiyld/aiyld.github.io)的站点

2个回答
老丝阿飞 2020.04.07

有一个关于使用Bluebird的请求那里的评论应该使某些事情更清楚。co依赖于0.11中提供的本机V8 Promises功能,而Bluebird的目标是也可以在0.10中很好地工作。您可以在低于0.11的版本中使用co,但是Bluebird将是一个更好的选择。在该链接中,您可以看到基准测试表明co不比Bluebird慢,因此该参数是错误的。

另外,只有300行代码,坚持使用KISS通常是一个好习惯。因此,它不是在重新创建轮子。它正在减肥。您可以在几分钟内阅读代码并了解它的作用。我花了一个小时来阅读Bluebird API文档。还提到V8的实现已中断,因此Bluebird可能会在过渡期内使用。

蛋蛋猿 2020.04.07

就目前而言,不同之处在于Koa不仅可以实现承诺,而且还可以提供更多收益。

但是,添加了一项功能,该功能不仅允许产生回调,重击等,而且还允许您想到任何随便的东西。蓝鸟也是最快的。因此,在此版本之后,koa应该确实只是在使用蓝鸟。

参见https://github.com/petkaantonov/bluebird/issues/131#issuecomment-36975495

问题类别

JavaScript Ckeditor Python Webpack TypeScript Vue.js React.js ExpressJS KoaJS CSS Node.js HTML Django 单元测试 PHP Asp.net jQuery Bootstrap IOS Android