CNode

promise与回调函数形式性能有区别吗?

问答
Jjiangliqin发布于10 年前最后回复10 年前10 回复8955 浏览0 收藏

nodejs 异步写成promise风格或者写成回调函数形式,高并发的时候性能上有区别吗?还只是写法形式上的区别,但事实说明我压测时promise形式的性能貌似好些,各位有何高见?

查看回复

回复 (10)

Z
zstxt1989#1·10 年前

promise本质上还是回调啊,只是写法变成链式的了

A
andyhu#2·10 年前

当然有,但是如果用bluebird的话,这点性能损耗不是大问题

J
jiangliqin#3·10 年前
引用 zstxt1989promise本质上还是回调啊,只是写法变成链式的了

@zstxt1989 本质都是异步的,我也这样觉得,只是链式比回调直观一些

J
jiangliqin#4·10 年前
引用 andyhu当然有,但是如果用bluebird的话,这点性能损耗不是大问题

@andyhu 为啥bluebird不是大问题?用es6中的promise呢

K
klesh#5·10 年前

据说 bluebird 的性能比目前 node.js 的原生 promise 还要好。抛开性能不说,bluebird 提供更多的 api,好用得不要太多。

2
2881099#6·10 年前

我个人觉得写nodejs包装过多会增加理解成本,如果简单两三层回调的话,包不包装成promise问题应该不大吧

Z
zstxt1989#7·10 年前

就算有promise也仍然烧脑,就书写代码思路流畅度来看,远远不如同步代码。

A
andyhu#8·10 年前
引用 jiangliqin@andyhu 为啥bluebird不是大问题?用es6中的promise呢

@jiangliqin es6的promise比bluebird慢。说bluebird不是大问题因为它很快

A
andyhu#9·10 年前
引用 zstxt1989就算有promise也仍然烧脑,就书写代码思路流畅度来看,远远不如同步代码。

@zstxt1989 可考虑加babel,用async / await方式来写,基本跟同步一样了。烧脑还是没理解透彻。弄熟了就不烧了

H
Hi-Rube#10·10 年前

语言层级上的没什么区别吧

参与回复
登录后即可参与回复。登录