传统的回掉函数
先准备三个传统的回调函数,示例很简单,就是拼接下字符串。
回掉函数嵌套
让上面三个回掉函数后者的输入依赖于前者的输出,于是就形成了回调函数嵌套。
事件的订阅与发布
上面的嵌套太难看,用 node 核心的 event 模块改写下。
分别监听不同的事件,在事件内部处理不同的函数,并控制触发下一个事件,看上去优雅多了不是吗,不过 event 的处理方式似乎被很多人所遗忘。
不可动摇的基石 promise
各种异步流程的第三方库如 co、async、bluebird 都是基于 promise ,而mongoose、sequelize 这些数据库 ORM 也都会默认支持 promise 形式的返回值,ES6 的 async/await 当然也是基于 promise,所以你是免不了跟 promise 打交道的。
上图中这里为了后续方便,先构建了三个 promise 对象,然后进行了链式调用。
async/await
被认为是异步流程的终结形式,基于上面构建的三个 promise 对象,再用 async/await 的形式来写:
结语
被安利到了吗,赶紧升级你的 node 版本吧,或者你根本就不需要被安利,这样更好。
这次的内容挺无聊不是吗。