【发布时间】:2011-08-06 21:39:59
【问题描述】:
var result = { controllers: [], views: [], models: [] };
var dirs = ['controllers', 'views', 'models'];
dirs.forEach(function(dirname) {
fs.readdir('./' + dirname, function(err, res) {
if (err) throw err;
result[dirname] = res;
// #2
});
});
// #1
在这段代码的 sn-p 中,console.log(result); 在 #1 处运行(见上文),将记录初始化时的空控制器、视图和模型数组。但是,我需要循环使用通过fs 读取的相应文件名填充数组。
#2 处的console.log(result); 将记录第三次迭代后填充了所需值的result 对象。
我相信这与 Node.js / JavaScript 回调的异步特性有关。如果我不了解 JavaScript 变量作用域和异步方法的工作原理,请原谅我,我是新手。
【问题讨论】:
标签: javascript node.js callback