Promise 之 catch() 與 Catch
若為 Fulfilled Promise,我們可用 then() 或 await 去獲得 Synchronous 資料;但若為 Rejected Promise,則有 then()、catch() 或 try catch 三種處理方式。
若為 Fulfilled Promise,我們可用 then() 或 await 去獲得 Synchronous 資料;但若為 Rejected Promise,則有 then()、catch() 或 try catch 三種處理方式。
ECMAScript 2015 的最大亮點之一就是提出 Promise 這種 未來值 概念避免 Callback Hell,先有 2015 的 then(),後有 2017 的 await,都可用來取得 Promise 內的 Synchronous 資料。
Fulfilled Promise 除了可由 Promise.resolve() 建立外,也可由 ECMAScript 2018 的 async 宣告,此外 Promise.resolve() 還能將 jQuery 的 Thenable Object 轉成真正的 Promise。
在 FP 我們會使用 Currying Function 取代傳統 Multiple Argument Function,但若回傳為 Promise,還能繼續使用 Currying 嗎 ?
ECMAScript 5 的 Property Accessor 提供了 Bracket Notation 可使用 [] 存取 Property,這使得 Property 可以使用 Variable;而 ECMAScript 2015 更加碼提供 Computed Property Name,讓我們在建立 Object 時就能使用 []。
ECMAScript 對 Asynchronous 支援比其他語言先進,從最基本的 Callback 演進到 ECMAScript 2105 的 Promise,再演進到 ECMAScript 2017 的 async await。
由於 ECMAScript 是 Single Thread 語言,對於繁重的運算動作,就無法使用 Multi Thread 解決,因此 Asynchronous 在 ECMAScript 格外重要。Browser 使用獨特的 Event Loop Model 實現 Asynchronous,要能徹底了解其背後運作原理,才能掌握 ECMAScript 的 Asynchronous Function。
一般 Destructuring 都用在 Array 與 Object,事實上也能用在 Iterable 上。
ECMAScript 2015 提供了很有創意的 Array Destructuring,原本需要好幾行才能完成的寫法,最後只需一行就能解決。
初學者常直覺將 Object 如 String 以 + 合併,但 Object 須以特殊方式才能合併。