私はいくつかのファイルのURLを保持する配列を持っています。例:ノード内の複数のファイルを非同期に読み込みキャッシュする
var files = ['1.html', '2.html', '3.html'];
これらを非同期で読み取り、cache(cache = {})という名前のオブジェクトに保存する必要があります。それはスコープです私はループの後、「readFileの」行為が終了したことを理解して
cache = { undefined : 'File 3 content' }
、それは失った:私は結果を持って
for(var i = 0; i < files.length; i++){
require('fs').readFile(files[i], 'utf8', function (error,data) {
cache[files[i]]=data;
});
}
最後に: はこれを行うには、私は、コードを使用しました。この方法や別の方法でファイルを配列から読み込んでキャッシュする方法を修正する方法はありますか?
おかげで、それが動作) – micnic
私は非同期を使用していますが、私はのReadFile関数の引数として「UTF8」を渡す必要があり、どのように私がすべきこれを行う? – jeroen
@jeroen: 'utf8'を渡すヘルパー関数を作成する必要があります。 'function read(file、callback){fs.readFile(file、 'utf8'、callback)}'のようなものです。 *編集*:編集済みの記事を参照してください! –