【问题标题】:Bluebird promisifyAll versus promisifying each methodBluebird promisifyAll 与 promisifying 每种方法
【发布时间】:2017-04-26 23:18:49
【问题描述】:

我使用的是节点模块,而不是使用 PromisifyAll(),每次调用该模块的方法时,我都会创建一个新的 Promise 对象。

这是一种安全的承诺方式吗?

如果没有,那么我的整个代码结构将会改变。那么改变是不是很关键,或者只要我使用 Promise 就可以了。

如果我分别承诺每种方法,是否会对内存或 CPU 产生影响?

【问题讨论】:

  • 请向我们展示您正在使用的代码,然后我们可以以更有意义的方式发表评论。

标签: node.js promise bluebird


【解决方案1】:

我认为作为 Bluebird 和 NodeJS 的核心,我处于一个独特的位置来回答这个问题。

这是一种安全但相对较慢的 Promisify 方法(使用 new Promise),如果您没有为每个 Promise 创建多个请求,那么您应该可以使用它。如果您的承诺数量与您的请求数量成比例,那么它就开始变得重要了。

您可以在此处查看上周的基准测试(new Promise):https://kyrylkov.com/2017/04/25/native-promises-async-functions-nodejs-8-performance/

Bluebird 在 promisifypromisifyAll 中做了很多聪明的事情,让它变得更快。

注意,我为 Node 提议了 util.promisify,我们是 working on adding it to the core

【讨论】:

    猜你喜欢
    • 2016-12-07
    • 2015-12-03
    • 2017-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-13
    • 2016-09-03
    相关资源
    最近更新 更多