CNode

nodejs的异步究竟是精华还是糟粕

Ccattail2012发布于14 年前最后回复14 年前14 回复7742 浏览0 收藏
	Staff.get({staffNo:staffNo},function(staffs){
	Qualification.get({staffNo:staffNo},function(qualifications){
		Experience.get({staffNo:staffNo},function(experiences){
			experiences[0].remove(function(){
				qualifications[0].remove(function(){
					staffs[0].remove(function(){
						httpRedirect(request.response,'/StaffManagement');
					});
				});
			});
		});
	});
});

自己在写代码时典型的风格。和普通的编程方式有太多不同。这究竟是鸡肋还是精华呢?

查看回复

回复 (14)

O
olddog#1·14 年前

习惯了同步方式的业务逻辑,改成异步的话会有一个过渡 吧

L
leizongmin#2·14 年前

并不是所有异步回调都会写成那样的,还是习惯问题吧

S
seanlv#3·14 年前
J
jin52yang#4·14 年前
C
cattail2012#6·14 年前
引用 seanlv推荐看一下老赵 @jeffz 的 Jscex https://github.com/JeffreyZhao/jscex/blob/master/README cn.md

看了一下,不过不太喜欢这样的方式将异步同步化。感觉这样效率会大打折扣

J
jin52yang#7·14 年前
引用 jin52yanghttps://github.com/joyent/node/wiki/modules wiki async flow 试试这里的模块

@cattail2012 EventProxy Jscex 都是国人开发的,可以优先考虑一下

F
fengmk2#8·14 年前

既然发现这样写不好,你肯定会想去改进,这是一个过程。迈过了这个坑,再看看nodejs给你带来的东西。 没有谁能保证nodejs能满足所有的人。

楼主了解nodejs再多些,过一个月回来再看看此问题,是否已经不是问题了?

J
jeffz#10·14 年前
引用 seanlv推荐看一下老赵 @jeffz 的 Jscex https://github.com/JeffreyZhao/jscex/blob/master/README cn.md

@cattail2012 效率会大打折扣的?求原因,没道理的。

J
jeffz#11·14 年前
J
jeffz#12·14 年前
引用 jin52yanghttps://github.com/joyent/node/wiki/modules wiki async flow 试试这里的模块

@jin52yang 其中Jscex的watcher数量在所有70个模块中排第三,仅次于Async和Step。

J
jin52yang#14·14 年前
引用 jin52yanghttps://github.com/joyent/node/wiki/modules wiki async flow 试试这里的模块

@jeffz 呵呵,不用向我推荐;虽然你喷java,但是丝毫不影响我崇拜你...

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