最近在写一个异步框架,主要是利用
promise
和 async/await
来完成异步变同步。
目前比较知名的是 PromiseKit
,主要解决了回调嵌套导致的 callback hell
,让我们写的代码看起来更美(主要因为链式调用),同时这个库也提供了一些其他操作,比如 join
,when
等等,让你可以控制数据流的中间过程。而且,其中还扩展了很多已有的库,将其中的异步接口封装成返回 promise
的接口,包括 Alamofire
,AVFoundation
,UIKit
等等。
有这么多功能可以用,那是不是写起异步来就会很爽呢?其实不然, promise
只是解决了回调嵌套导致的代码难看问题,却没有解决异步变同步的问题。那怎样实现用同步的写法来干异步的事情呢?在 ES7
中引入了 async/await
这个语法,而这个语法最早是在 C#
中发明的,不了解的可以 google 一下,看看它是如何使用的。
其实在使用 async/await
之前,我们应该先看一下它的前任——generator
。
暂时先写这么多。