Promise - eddychang.me

jQuery中的Promise


前言

這篇文章是為了要理解在jQuery中的Promise機制而整理的。

jQuery在幾年前就有Deferred物件的概念,當時Promise並未成為真正的標準,而今時今日Promise已成為ES6的正式標準,相信未來jQuery中的Promise作法,將會改變為實作ES6中的標準。

Promise的概念並不容易理解,從這裡開始反而簡單些,不論實作的方式如何,它的目的始終是差不多的,從以下的內容可窺得一二。

Promise - Q函式庫


前言

Promise(承諾)已經確定是下一代Javascript的ES6標準。在這之前,已經有數套相關的函式庫支援這個新的特性。這篇文章是接著jQuery中的Promise而寫來的,從jQuery的Deferred概念來理解另一套知名的函式庫 - Q。

這篇文章主要還是簡介,深入的應用還是請再到Q的網站上觀看相關的API文件。

Promise教學 - Promises/A+標準定義


本內容是從免費電子書從Promise開始的JavaScript異步生活中轉貼過來,有興趣可以前往閱讀。


原生的ES6 Promise是符合Promises/A+標準的

所謂的Promises/A+標準,其實就是個幾千字的一頁網頁而已,裡面的說明與用語並不會太難理解。雖然ES6標準中也有自己的Promise物件標準章節,但因為裡面涉及很多實作技術說明,明顯地用字遣詞艱澀許多,所以在這裡就不多加討論。以下使用Promises/A+標準作為一個開始,來解說Promise的標準裡有什麼內容。這一章僅有定義部份,之後的解說也是會依照Promises/A+標準中的規則來說明。

Promise教學 - 前言


本內容是從免費電子書從Promise開始的JavaScript異步生活中轉貼過來,有興趣可以前往閱讀。


一個promise代表一個異步運算的最終結果 ~譯自Promises/A+

Promise語法結構提供了更多的程式設計上的可能性,它是一個經過長時間實戰的結構,在許多知名的函式庫或框架中很早就有見到Promise物件的身影,例如Dojo、jQuery、YUI、 Ember、Angular、WinJS、Q等等,之後Promises/A+社區則提供了統一的標準。在最近新一代的ES6標準中將會包含了Promise的實作,提供原生的語言內建支援,這將是個開始,往後會有愈來愈多API以此為基礎架構在其上。

Promise教學 - 基本概念


本內容是從免費電子書從Promise開始的JavaScript異步生活中轉貼過來,有興趣可以前往閱讀。


異步Callback(回調)

Promise中的所有回調函式,都是異步執行的

我需要再次強調,並非所有的使用callbacks(回調)函式的API都是異步執行的。在JavaScript中,除了DOM事件處理中的回調函式9成9都是異步執行的,語言內建API中使用的回調函式不一定是異步執行的,也有同步執行的例如Array.forEach,要讓開發者自訂的callbacks(回調)的執行轉變為異步,有以下幾種方式: