ES 流程控制演进历程

published

Callback / EventEmitter 时代

开发者们靠着 Callback、基于 Callback / EventEmitter 的流程控制库和奇技淫巧,实现着各种需求。

前 Promises 时代

Promises 的出现早于 Generator,但当时却并没有 Generator 流行。

Generator 时代

Generator 是 ES2015 引入的特性,本身用于计算。

当时,TJ 发现 Generator 可以用于流程控制,于是写了 co。之后,基于 Generator 的流程控制就流行起来了。

值得一提的是,靠 Generator 起家的 co,现在已经支持 Promises 了。

后 Promises 时代

Promises 作为新特性被 ES2015 引入。由于 ES 规范的影响力,Promises 才算真正被大家熟知。

Async Function 时代

Async Function 配合着 Promises,终于让 ES 的流程控制到了一个可以让人的接受的时代。

流程控制的推荐做法

截至 2017 年 3 月 11 日,个人推荐使用 Async Function + Promises。