最近在寫一個(gè)異步框架,主要是利用
promise
和 async/await
來(lái)完成異步變同步。
目前比較知名的是 PromiseKit
,主要解決了回調(diào)嵌套導(dǎo)致的 callback hell
雾袱,讓我們寫的代碼看起來(lái)更美(主要因?yàn)殒準(zhǔn)秸{(diào)用),同時(shí)這個(gè)庫(kù)也提供了一些其他操作官还,比如 join
芹橡,when
等等,讓你可以控制數(shù)據(jù)流的中間過(guò)程望伦。而且林说,其中還擴(kuò)展了很多已有的庫(kù),將其中的異步接口封裝成返回 promise
的接口屯伞,包括 Alamofire
腿箩,AVFoundation
,UIKit
等等劣摇。
有這么多功能可以用珠移,那是不是寫起異步來(lái)就會(huì)很爽呢?其實(shí)不然, promise
只是解決了回調(diào)嵌套導(dǎo)致的代碼難看問(wèn)題钧惧,卻沒(méi)有解決異步變同步的問(wèn)題暇韧。那怎樣實(shí)現(xiàn)用同步的寫法來(lái)干異步的事情呢?在 ES7
中引入了 async/await
這個(gè)語(yǔ)法浓瞪,而這個(gè)語(yǔ)法最早是在 C#
中發(fā)明的锨咙,不了解的可以 google 一下,看看它是如何使用的追逮。
其實(shí)在使用 async/await
之前,我們應(yīng)該先看一下它的前任——generator
粹舵。
暫時(shí)先寫這么多钮孵。