【发布时间】:2011-11-08 06:36:01
【问题描述】:
我是 JavaScript 和 node.js 的新手。我想遍历一个目录并将所有文件统计信息(不是其他目录)添加到一个数组中。正如您在下面看到的,我的代码存在问题,因为在 for 循环完成后可能会调用回调,因此在回调方法中使用“i”变量将不起作用。但是代码应该如何看起来才能使下面的 sn-p 工作?它与闭包有关吗?
感谢您的帮助!
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
}
});
}
}
});
【问题讨论】:
-
我认为自从您发布此节点以来,该节点已向 fs 命名空间添加了一些同步功能。
标签: node.js asynccallback