我使用的是一个节点模块&每次调用该模块的方法时,我都会创建一个新的promise对象,而不是使用PromisifyAll()。
这是一种安全的解决办法吗?
如果不是,那么我的整个代码结构就会改变。所以改变是非常关键的,还是只要我使用Promise就可以了。
另外,如果我单独删除每种方法,是否会对内存或CPU产生影响?
发布于 2017-04-26 23:18:38
作为蓝鸟和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。
https://stackoverflow.com/questions/43638123
复制相似问题