node app里面除了你自己以外的所有代碼都是并行執行的,舉個例子,你的代碼(回調函數)是國王,node的代碼是士兵(例如createServer
readFile
writeFile
...),國王向士兵發完tasks之后就可以回去睡個懶覺,士兵在外面執行tasks,等士兵們完成自己手中tasks時,便等候在國王的任務隊列中等待報告,以便國王隊任務完成報告做進一步指示(callback)
用代碼來演示
let fs = require('fs')
fs.readFile('file1.txt',function(report){
console.log("Solder 1's report")
})
fs.writeFile('file2.txt','this is file2',function(){
console.log('Solder 2\'s report')
})
這里node自身的fs.readFile
和fs.writeFile
是同時執行的,而各自的回調函數執行順序則根據fs.readFile
和fs.writeFile
的完成時間而定
這就是高并發/單進程/事件循環的精髓了
優勢
- 低相應時間/高并發 這都是node擅長的