異步的那些事兒,promise

promise 是es6 的標準函數,主要是解決執行函數當中的回調問題,相對于async,async只是一套解決回調的語法糖,而promise就是協議的方案,在未來環境當中,不用require就可以使用。

對于當前版本以第五版為主,不過promise的原理還是比較簡單,社區已經有很多庫進行模擬,下面列了一下

本來打算展開寫自己實現一個promise,但發現在網上已經有一個很好的教程了,我覺得自己沒能力寫得比他好,所以我直接貼出來,大家可以參考 http://www.html-js.com/article/1739

關于promise 的思考

相對于async,promise的實現和細節實在復雜太多了,從promise的代碼量里面來看足足是async實現的幾倍,而且學習成本也會比async高,這是一點,另外一點,函數需要封裝成promise形式才能搞保證鏈式調用,雖然一般promise模塊,都會為標準的node.js函數提供,快捷的封裝函數,但跟async的拿來就有的使用體驗來說,還是有差距,但是promise還是有很吸引人的殺手锏,es6的標準函數,由javascript的引擎直接提供,性能肯定要比async好,而且不用引入一個async模塊,在瀏覽器上表現肯定會更加好,關于兩者的選擇,我覺得如果你的項目周期感覺比較長,建議還是用promise,畢竟這個才是大方向,如果只是簡單做做,我覺得async上手更加快。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容