你们写 js 各种回调也是这么一层一层吗?

2014 年 5 月 7 日
 liushuaikobe
新手一个,写node各种异步啊。。于是就有了这样的代码出现:

https://gist.github.com/liushuaikobe/6b4db6c929ec0440ab9a

这种情况下该怎么写比较好啊,求轻喷
6111 次点击
所在节点    Node.js
33 条回复
rails3
2014 年 5 月 7 日
eventproxy
liushuaikobe
2014 年 5 月 7 日
@rails3
竟然是朴灵大大写的。。赞,这就去试试~
jsonline
2014 年 5 月 7 日
用具名函数替换匿名
bingdian
2014 年 5 月 7 日
subpo
2014 年 5 月 7 日
正常的很,es6有解决方案,这些都是js的原生方式,没必要用什么特别的库
liushuaikobe
2014 年 5 月 7 日
@subpo
可能还不大适应这种写法,看些来有点别扭
akfish
2014 年 5 月 7 日
每次看到这种代码,就会脑补开唱:
如果你愿意
一层一层一层的
剥开我的心
你会鼻酸
你会流泪
jia0
2014 年 5 月 7 日
@akfish 赞!
undozen
2014 年 5 月 7 日
callbackhell.com

简单解决:给回调命名
优雅解决:promise
liushuaikobe
2014 年 5 月 7 日
@akfish
眼泪掉下来。。
akinoniku
2014 年 5 月 7 日
我用async
liushuaikobe
2014 年 5 月 7 日
@undozen
赞!
liushuaikobe
2014 年 5 月 7 日
@undozen
给函数命名确实能让代码看起来舒服很多,除了命名本身带给人的烦恼(不知道取什么名字好)。。
chemzqm
2014 年 5 月 7 日
Promise和async的API记不住,我用自己写的 https://github.com/chemzqm/parallel 没几行代码,测试100%覆盖,客户端通用
paloalto
2014 年 5 月 7 日
之前用过这个: https://github.com/chemdemo/node-stepify

写起来像这样的:

tyzc
2014 年 5 月 7 日
支持promise,这是个非常优雅的解决方法。
Actrace
2014 年 5 月 7 日
既然习惯函数式编程,就不要用回调特性嘛。。。
bolasblack
2014 年 5 月 7 日
promise 已经被选为 ES6 里的解决方案
async 的 waterfall 也非常好用

两个都可以试用一下,然后挑一个自己最喜欢的
andyhu
2014 年 5 月 7 日
async性能好一点,promise更优雅点,不过将来es6的generator是大势所趋,可以用下tj写的的co
没有装0.11版本的同学也可以考虑用facebook的regenerator模仿下es6的generator特性
fundon
2014 年 5 月 7 日
Next generator 是趋势

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.xtra.eu.org/t/111499

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX