複数のファイルの URL を保持する配列があります。例えば:
var files = ['1.html', '2.html', '3.html'];
それらを非同期で読み取り、キャッシュ (キャッシュ = {}) という名前のオブジェクトに保存する必要があります。これを行うには、次のコードを使用しました。
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」が機能し、その範囲が失われることを理解しています。配列からファイルを読み取ってキャッシュするために、これまたは別の方法を修正する方法はありますか?