Monday, October 3, 2016

javascript async/await promise ---- 驗証方式

在 javascript 裡,因為 I/O 都是非同步呼叫,如果需要寫出有相依性的業務邏輯(同步呼叫),因為要寫大量的 callback,可讀性上就會遇到 callback hell 的問題。新版的 javascript 已經有提供了 async/await  語法,搭配 promise 來取代 callback 的寫法。

然而,要如何驗証使用 async/await 之後,函數的呼叫真的是「同步」的呢? 這個問題該如何驗証呢?其實可以利用 chrome debugger 來驗証。
 圖一:這個是實作 async/await 之前的狀態。可以看出兩條紅線的右端,兩個呼叫後端的函數是在同一個時間點開始。
圖二:經過 async/await 的修改後,兩條紅線的右端同樣兩個函數,開始的時間產生了明確的差距,恰好就是第一個函數完成之後,第二個函數才開始。