我在Node.js中構建了一個系統,該系統應該查找文件夾數組中的所有文件,統計它們,然後使用該信息做一些額外的工作。爲回調函數添加其他參數
我使用fs.readdir()從每個文件夾同步獲取所有文件。我的代碼如下所示:
for(i=0,max=paths.length; i<max; i++) {
var path = paths.pop();
console.log("READING PATH: " + path);
fs.readdir(path, function(err, files) { handleDir(err, files, path); });
}
的問題是,根據執行的速度有多快READDIR(),handleDir()越來越走錯了路。發生這種情況是因爲回調運行時,下一個循環已經開始 - 這意味着路徑變量已經改變。
所以,我需要做的是以某種方式鎖定該路徑變量爲它的特定回調函數。我想不出有什麼好辦法做到這一點 - 任何人都有一些想法?
我喜歡這個技術用於其簡潔 – nicolaskruchten 2011-05-14 14:43:09