JavaScript中使用Callback控制流程介绍
javascript中随处可见的callback对于流程控制来说是一场灾难,缺点显而易见:
1.没有显式的return,容易产生多余流程,以及由此引发的bug。
2.造成代码无限嵌套,难以阅读。
下面就来说说怎么解决避免上述的问题。
第一个问题是一个习惯问题,在使用callback的时候往往会让人忘了使用return,这种情况在使用coffee-script的时候尤甚(虽然它在编译成javascript时会自行收集最后的数据作为返回值,但是这个返回值并不一定代表你的初衷)。看看下面的例子。
a=(err,callback)-> callback()iferr? console.log'youwillseeme'
b=-> console.log'Iamacallback'
a('error',b)