JAVASCRIPT CONTROL FLOW
by bu @ hax4 studio2013. Feb. 06
‧A Developer of hahahaha studio
‧Web developer since 2003
‧PHP, JavaScript, Python, Java Developer.
‧我討厭 IE (真的)
邱柏崴Buwei Chiu (a.k.a bu)
WHAT IS HAHAHAHA STUDIO?
一個成立於 2009 年西洋情人節的設計團體
專注於網路服務的開發或研究
近年開始採用多樣化的平台進行製作
最重要的,我們都討厭 IE
http://hax4.in
重點回顧
Node.js
JavaScript
asynchronous
callback
means
asynchronous
有什麼問題?
可怕! 超多層的 callback
為什麼我們需要 Control Flow 的機制?
很大的變化對吧?
目的有二個:
1. 減少程式碼的複雜度
2. 使其更容易被閱讀及理解
本次要介紹的二個主角
caolan/asynckriskowal/q
情境1:Chained function call, data passing to next
live demoQ.js with promise/a
promise/a
reject
resolve
fulillment failbackthen ( , );promiseregister
promise
returns
a proposal of CommonJS
when
Live demoasync.js waterfall
其他 Case
async.js cargo
use case: 有⼀一些事件需要被收集批次處理
async.js queue
有⼀一些事件需要⾺馬上處理,但⼜又想利⽤用不同的 loop 進⾏行處理上的分⼯工,加強處理速度
async.js parallel
use case: ⾮非同步⽅方法但要結束觸發callback
async.js seriesuse case: 需要⼀一個⼀一個接著⼀一個序利執⾏行的⽅方法,
然後結束時要觸發 callback
謝謝
Recommended