jQuery中的Promise
前言
這篇文章是為了要理解在jQuery中的Promise機制而整理的。
jQuery在幾年前就有Deferred
物件的概念,當時Promise並未成為真正的標準,而今時今日Promise已成為ES6的正式標準,相信未來jQuery中的Promise作法,將會改變為實作ES6中的標準。
Promise的概念並不容易理解,從這裡開始反而簡單些,不論實作的方式如何,它的目的始終是差不多的,從以下的內容可窺得一二。
Promise - eddychang.me
這篇文章是為了要理解在jQuery中的Promise機制而整理的。
jQuery在幾年前就有Deferred
物件的概念,當時Promise並未成為真正的標準,而今時今日Promise已成為ES6的正式標準,相信未來jQuery中的Promise作法,將會改變為實作ES6中的標準。
Promise的概念並不容易理解,從這裡開始反而簡單些,不論實作的方式如何,它的目的始終是差不多的,從以下的內容可窺得一二。
Promise(承諾)已經確定是下一代Javascript的ES6標準。在這之前,已經有數套相關的函式庫支援這個新的特性。這篇文章是接著jQuery中的Promise而寫來的,從jQuery的Deferred概念來理解另一套知名的函式庫 - Q。
這篇文章主要還是簡介,深入的應用還是請再到Q的網站上觀看相關的API文件。
本內容是從免費電子書從Promise開始的JavaScript異步生活中轉貼過來,有興趣可以前往閱讀。
原生的ES6 Promise是符合Promises/A+標準的
所謂的Promises/A+標準,其實就是個幾千字的一頁網頁而已,裡面的說明與用語並不會太難理解。雖然ES6標準中也有自己的Promise物件標準章節,但因為裡面涉及很多實作技術說明,明顯地用字遣詞艱澀許多,所以在這裡就不多加討論。以下使用Promises/A+標準作為一個開始,來解說Promise的標準裡有什麼內容。這一章僅有定義部份,之後的解說也是會依照Promises/A+標準中的規則來說明。
本內容是從免費電子書從Promise開始的JavaScript異步生活中轉貼過來,有興趣可以前往閱讀。
ES6 Promise的實作中,會確保Promise物件一實體化後就會固定住狀態,要不就是"已實現",要不就是"已拒絕"
本內容是從免費電子書從Promise開始的JavaScript異步生活中轉貼過來,有興趣可以前往閱讀。
一個promise代表一個異步運算的最終結果 ~譯自Promises/A+
Promise語法結構提供了更多的程式設計上的可能性,它是一個經過長時間實戰的結構,在許多知名的函式庫或框架中很早就有見到Promise物件的身影,例如Dojo、jQuery、YUI、 Ember、Angular、WinJS、Q等等,之後Promises/A+社區則提供了統一的標準。在最近新一代的ES6標準中將會包含了Promise的實作,提供原生的語言內建支援,這將是個開始,往後會有愈來愈多API以此為基礎架構在其上。
本內容是從免費電子書從Promise開始的JavaScript異步生活中轉貼過來,有興趣可以前往閱讀。
Promise中的所有回調函式,都是異步執行的
我需要再次強調,並非所有的使用callbacks(回調)函式的API都是異步執行的。在JavaScript中,除了DOM事件處理中的回調函式9成9都是異步執行的,語言內建API中使用的回調函式不一定是異步執行的,也有同步執行的例如Array.forEach
,要讓開發者自訂的callbacks(回調)的執行轉變為異步,有以下幾種方式: