【发布时间】:2012-03-25 23:08:52
【问题描述】:
我有一个数组来保存几个文件的 URL。例如:
var files = ['1.html', '2.html', '3.html'];
我需要异步读取它们并将它们保存在名为缓存 (cache = {}) 的对象中。 为此,我使用了代码:
for(var i = 0; i < files.length; i++){
require('fs').readFile(files[i], 'utf8', function (error,data) {
cache[files[i]]=data;
});
}
最后我得到了结果:
cache = { undefined : 'File 3 content' }
我确实理解“readFile”在循环结束后起作用并且它失去了它的范围。有没有办法修复这个或其他方法来从数组中读取文件并缓存它们?
【问题讨论】: