新手:如何优雅地写异步
感觉js最让人烦恼的就是异步编程。现在,我大概形成的自己的编程习惯,比如异步函数的返回值都是返回promise
,并且函数名后面加$
符号,有co
和promise
实现同步和异步。但是小菜感觉还不够。大家来分享下你们的经验啊
6 回复
非常简单明了的部分, 就直接匿名 callback 嵌套N层, 效率最高. 逻辑复杂, 以及可能有重用的部分时, 用命名函数把嵌套给抹平. 写一些模块的时候, 定义一个类, 继承 EventEmitter, 在类的方法之间用 this.method() 或 this.emit(‘someEvent’) 进行调用和异步的通知. 流程化的服务中, 用 generator + thunk 函数. 不得已, 或者不关心性能, 或者懒得去处理异常的时候考虑用 Promise 或 generator + Promise… 以上我是个人陋习…
有篇文章可以看看 : https://spion.github.io/posts/analysis-generators-and-other-async-patterns-node.html
上 ES7 规范的 async/await 吧!
来自酷炫的 CNodeMD
你需要 《JavaScript异步编程.pdf》
因为买不到了