感觉js最让人烦恼的就是异步编程。现在,我大概形成的自己的编程习惯,比如异步函数的返回值都是返回promise,并且函数名后面加$符号,有co和promise实现同步和异步。但是小菜感觉还不够。大家来分享下你们的经验啊
promise
$
co
非常简单明了的部分, 就直接匿名 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
@Chunlin-Li 👍
上 ES7 规范的 async/await 吧!
来自酷炫的 CNodeMD
https://cnodejs.org/topic/5709cb2f94b38dcb3c09a7ac
你需要 《JavaScript异步编程.pdf》
因为买不到了
CNode 社区为国内最专业的 Node.js 开源技术社区,致力于 Node.js 的技术研究。
非常简单明了的部分, 就直接匿名 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
@Chunlin-Li 👍
上 ES7 规范的 async/await 吧!
来自酷炫的 CNodeMD
https://cnodejs.org/topic/5709cb2f94b38dcb3c09a7ac
你需要 《JavaScript异步编程.pdf》
因为买不到了