没有实际接触过大的nodejs工程代码,所以想看看大家平时都是怎么用的。
今天把一些基础的nodeschool.io的tutorial做了一下,异步相关的模式大概有四类,
- callback, 这个是最好理解的做法了,当一个event发生的时候(主要是io event),调用对应的callback去处理。最大的缺点是不直观,callabck hell难以维护,难以阅读。如果要combine多个io的结果,会很麻烦。
- async辅助的callback, 这种做法里,虽然还是callback的理念,但是通过async写把callback的依赖关系标准化,增加可读性。 试了一下tutorial里面的例子,代码还是难读。
- promise, 这个是我用的比较舒服的一种方法,我以前的很多project是java写就的,使用类似的类库(ListenableFuture)来处理异步依赖关系。
- Event Stream, 试了一下他的tutorial,整体的想法很好,有点类似golang的channel concept,跟python的generator的模式有点类似,不过还没有机会深入了解。如果一个逻辑同时依赖与两个或者多个IO输入,那么怎么处理这一类问题不是很清楚。