最近看到一张关于async的图(其实是PPT[1]中的一张),挺有意思。
大概解释一下。async编程有4个层次(level)。
最底层的就是现在的Javascript(包括ES6)。就是async + callback模式。所以有callback hell。即使Promise也没有解决这个问题。因为一段逻辑其实是被分散到多个地方表述的,导致代码的可读性很差。
发展到最近就有了async + await模式。抛弃了callback。使得编写async程序看起来就像普通的程序一样。同时也支持exception的处理。Python 3.5和ES7就到了这个阶段。这在我看来已经很先进了。因为async await的代码除了有些关键字标签之外,已经和普通代码看不出什么区别。所有程序逻辑都集中在一处。当然,代码是这样,但是在我们的脑子里面还是要理解这个是异步的,不会阻塞等等。
PPT中介绍的是第4个层次: monad。不明觉厉。有机会了解下。
杨博,More than async, QCon全球软件开发大会2016
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。