我正在使用节点模块&而不是使用PromisifyAll()我每次调用该模块的方法时都会创建一个新的promise对象。
这是一种安全的宣传方式吗?
如果没有,那么我的整个代码结构将会改变。因此,改变或只要我使用Promise它是非常关键的。
如果我单独宣传每种方法,还会对内存或CPU产生影响吗?
答案 0 :(得分:3)
我认为我有一个独特的位置来回答这个问题,包括Bluebird和NodeJS核心。
这是一种安全但相对较慢的promisify方法(使用new Promise
),如果你没有为每个promise创建多个请求,那么你应该没问题。如果您的承诺数量与您的请求数量相符,则它开始变得重要。
您可以在此处查看上周的基准(new Promise
):https://kyrylkov.com/2017/04/25/native-promises-async-functions-nodejs-8-performance/
Bluebird在promisify
和promisifyAll
中做了很多聪明的事情,让它变得更快。
注意,我为Node提出了util.promisify
,我们是working on adding it to the core。