我是JavaScript和node.js的新手。我想循环遍历一个目录,并将所有文件的状态(而不是其他目录)添加到一个数组中。如您下面所见,我的代码存在问题,因为回调函数可能会在for循环完成后调用,因此在回调方法中使用"i"变量将无法起作用。但是,代码应该如何编写才能使下面的代码片段正常工作?这与闭包有关吗?
谢谢帮忙!
谢谢帮忙!
fs.readdir(SYNCDIR, function(err1, files) {
var filesOnly = [];
if(!err1) {
for(var i = 0; i < files.length; i++) {
var imgFilePath = SYNCDIR + '/' + files[i];
fs.stat(imgFilePath, function(stat){
if (stat.isFile()){
filesOnly[i] = stat; // This will not be correct since the for-loop has finished
}
});
}
}
});