我正在試驗事件循環。首先我從這個簡單的代碼開始閱讀和打印文件的內容:瞭解Node.js事件循環。 process.nextTick()從不調用。爲什麼?
var fs = require('fs');
var PATH = "./.gitignore";
fs.readFile(PATH,"utf-8",function(err,text){
console.log("----read: "+text);
});
然後我把它放到一個無限循環中。在這種情況下,readFile函數從不執行。如果我沒有弄錯,那是因爲Node的單線程忙於迭代而不讓I/O調用被執行。
while(true){
var fs = require('fs');
var PATH = "./.gitignore";
fs.readFile(PATH,"utf-8",function(err,text){
console.log("----read: "+text);
});
}
所以,我想,這樣的I/O調用分配與循環交織過程的時間做一些事情。我嘗試使用process.nextTick()但它不起作用:
while(true){
process.nextTick(function(){
fs.readFile(PATH,"utf-8",function(err,text){
console.log("----read: "+text)
});
});
}
爲什麼它不工作,我怎麼能做到這一點?
優秀的解釋,謝謝JayKuri! – codependent 2014-10-10 06:55:20
非常好的解釋,你可以給一些證明來驗證你的關於process.nextTick的聲明。像任何由節點或JavaScript文檔。 – 2016-09-25 18:35:10
優秀的解釋 - 現在我明白了... – Guihgo 2017-02-12 05:00:04