Node.js使用同步I/O的處理方式

Node.js快速的原因絕大部份都歸功於非同步I/O以及事件驅動的原因,在傳統瀑布式程式碼開發方式,在不使用執行緒的情況下必須等前面的程式碼執行完才能繼續下一個;而非同步則是每個task獨立各自處理不需互相等待(有種射後不裡的感覺XD)。

但實務上還是會有需要先等前一個task完成才能繼續下一個task的情況,這時候若以node.js非同步&事件驅動開發的方式,就會變成很深層的巢狀程式碼,對於後續維護非常不方便。比較常用的解決方法是使用setTimeout或process.nextTick來解決,但也很麻煩。

好在npm上有一個超好用的套件async,裡面有非常多種處理方式,可以解決問題

使用npm安裝也很簡單

相關的使用可以參考: https://www.npmjs.com/package/async

另外github上也有高手針對async做了很完程的範例說明: https://github.com/alsotang/async_demo

而且還是中文說明(簡體字),由於說明都很完整還有中文,這篇文章就不貼範例程式碼了XD

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *

文章分類

全部展開 | 全部收合