CNode

如何决定某个函数实现是同步还是异步?

Llhfcws发布于13 年前最后回复13 年前8 回复10004 浏览0 收藏

比如我可能一个模块里的某个函数不涉及IO或DB等,仅是简单的handler,感觉其实采取同步会方便很多,但是又怕整体调用风格不统一很混乱。请问各路大神一般是怎么决定的?是所有功能都异步?还是涉及到阻塞的和exports的才采取异步?

查看回复

回复 (8)

S
seasonx4#1·13 年前

如果这个同步是偶尔触发的(比如达到某一条件) 这样的同步对性能没什么影响,反而可以大大减轻代码压力

如果每次请求都要触发,这样的操作就不要用同步

B
bigmusic#3·13 年前

涉及IO的都是异步,明显特征是有Callback和触发条件 另外一种是你让node异步,比如SetTimeXXX的,建议到图灵买那本异步的书看看,获益不少 异步编程确实需要习惯啊啊啊啊啊

H
halfblood#4·13 年前

没必要吧,不是说非要所有情况都异步,能同步处理的就同步处理!同步代码还是比异步代码易读很多的,捕捉异常也容易些。

H
halfblood#7·13 年前
引用 halfblood没必要吧,不是说非要所有情况都异步,能同步处理的就同步处理!同步代码还是比异步代码易读很多的,捕捉异常也容易些。

@Lhfcws 能同步的地方就用同步了。不过就如楼上所说一样,想用nodejs,首先要熟练异步编程,毕竟单线程语言这是不可避免的。而且当你熟练后,异步用起来也很爽。

L
lhfcws#8·13 年前
引用 halfblood没必要吧,不是说非要所有情况都异步,能同步处理的就同步处理!同步代码还是比异步代码易读很多的,捕捉异常也容易些。

@halfblood 多谢了!其实我主要是不知道哪种设计会更好,要考虑到拓展复用,性能等方面。

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