在异步编程中,除了竟态处理.资源利用以外,另外一个难点就是流程管理.在拥有匿名函数.闭包这些特性的编程语言中,我们通常可以使用回调函数来做一个异步任务完成或失败时的处理.但当我们的业务逻辑逐渐复杂时,就会产生回调嵌套,整个事件流将十分混乱.相信大家对 Node.js 的回调陷阱一定有所耳闻了.于是各种各样事件流处理的库就产生了,比如 NPM.js 社区中著名的 q.bluebird 都是用来解决回调陷阱的,它们所采用的模式就是我们所说的 Promise,也是我们今天要谈的模式.当然异步流程处理的…