以往我們在設計程式規畫流程時,總是會有些函數是必須等待的,等待他的結束或是等待他的某項任務處理結束。
等待時,最常用的方法就是讓他在同一個thread裡面,函數執行結束後理所當然的就會執行下一步驟。若是用不同thread處理時就無法等待,可能就會用一個旗標(flag)去判斷繼續執行或等待,不過這樣的等待會造成整個thread block住(busy loop),不僅浪費thread資源,也浪費CPU的效能。
事件觸發這個想法也不是從nodejs開始的,很早之前在JAVA、C#和前端javascript就已經開始使用了。但在nodejs中這會是一個絕佳的利器,因為你沒辦法擁有多執行緒,也無法完整的控管已經被分配出去抓不到的非同步函數。
作業系統:linux/windows
版本:nodejs v4.X
主要模組:
events
輔助套件:
readline - 講解用,實際上使用並不會用到
util - 繼承用,若物件需要被賦予事件的功能時會用到
[Nodejs]非同步處理(async)
在之前的文章提過,Nodejs本身是一個單執行緒的語言,那麼在這樣的語言裡面,設計流程上需要注意什麼呢?有沒有什麼默認的規範必須遵守?
註:提及單執行緒的文章 --- [Nodejs]關於、介紹和筆記
此篇主要介紹非同步處理跟管理方法,大致上就是async和promise這兩種非同步用法,當然,絕對不是只有這兩種方法可以使用,不過大部分 npm社群網站中的套件都會優先符合這兩者。而Shach本身是習慣使用async,所以此篇還是主要以async為主,如果有哪邊寫錯還請高人指點迷津。
註:node js在v4版本後已經把promise納入核心模組中。
環境:Linux/Windows
版本:v4.X LTE
主要套件:async
輔助套件:
fs - 講解用,實際上使用並不會用到
註:提及單執行緒的文章 --- [Nodejs]關於、介紹和筆記
此篇主要介紹非同步處理跟管理方法,大致上就是async和promise這兩種非同步用法,當然,絕對不是只有這兩種方法可以使用,不過大部分 npm社群網站中的套件都會優先符合這兩者。而Shach本身是習慣使用async,所以此篇還是主要以async為主,如果有哪邊寫錯還請高人指點迷津。
註:node js在v4版本後已經把promise納入核心模組中。
環境:Linux/Windows
版本:v4.X LTE
主要套件:async
輔助套件:
fs - 講解用,實際上使用並不會用到
[Nodejs]模組(module)
延續了像是javascript的使用方法,使用者可以從不同的script檔去實做function甚至是class,然後讓會用到相同程式碼的地方不需要重覆撰寫。但與其他語言比較不一樣的是,他是使用require的形式。
前端使用者較為熟悉的是:requirejs
前端使用者較為熟悉的是:requirejs
[Nodejs]關於、介紹和筆記
我在2015年7月份的時候,開始接觸了nodejs這一個語言,嚴格來說nodejs也不算是一種語言,因為他所使用的語言是大家更為熟悉的javascript,一個以往用於前台設計卻一直都無法崛起的語言。
小弟我對C語言及C#語言也略有研究,以下如果無法簡單解釋可能會套用一些觀念進來解釋。
本來在這半年多以來,寫過的東西不算多,但也是終於看出了些端倪,以下介紹一些所發現的重點,如果有錯誤還請包含,另外也請各位來指正小弟,互相交流。
環境:Linux/Windows
版本:v4.X LTE
小弟我對C語言及C#語言也略有研究,以下如果無法簡單解釋可能會套用一些觀念進來解釋。
本來在這半年多以來,寫過的東西不算多,但也是終於看出了些端倪,以下介紹一些所發現的重點,如果有錯誤還請包含,另外也請各位來指正小弟,互相交流。
環境:Linux/Windows
版本:v4.X LTE
訂閱:
文章 (Atom)