0
我需要一點幫助理解如何複製我想作爲模塊傳遞的函數的結果.exports ..有一個全局和局部範圍的問題在這裏:節點js - 模塊範圍與函數的變量和結果
// Declare node.js module dependencies from API
var walk = require('walk'),
filter;
// Declare variables
var files = [];
var filteredFiles = [];
var i = 0;
var fileextension = '.html';
var foldername = 'node_modules';
var filter = {
followLinks: false
};
var walker = walk.walkSync(foldername, filter);
var temp = [];
module.exports = {
scanDirWithFil: function() {
walker.on('file', function(root, stat, next) {
files.push(stat.name);
if (files[i].indexOf(fileextension) != -1) {
filteredFiles.push(stat.name);
console.log(files[i]);
next();
i++;
}
else {
next();
i++;
}
console.log('Number of filtered files in array: ' + filteredfiles.length + ", Total number of files in array: " + files.length)
return files, filteredFiles;
});
temp = files.toString();
return temp;
}
};
正如人們所看到的,我試圖返回結果的功能scanDirWithFil,但是回報是通過溫度,這是從files.toString。這就是問題所在。由於範圍問題,文件現在變成空數組。從walker.on方法返回的文件數組實際上並沒有超出其本身的範圍..
如果我在我說的是正確的(這是一個範圍問題)..可能有人指導我或幫助我解決這個問題的可能解決方案?
謝謝你,布萊恩
非常感謝您!所以這是因爲代碼是異步運行的。很高興知道。 –