并行异步读取文件

时间:2012-12-20 06:53:44

标签: node.js fs

我的node.js应用程序需要多个文件。我知道建议异步读取文件,所以,显然我必须做这样的事情:

fs.readFile("file1", function(...) {
  fs.readFile("file2", function(...) {
    fs.readFile("file3", function(...) {
       [my application]
    }
  }
}

但是,在这种情况下,将按顺序读取文件。

有没有办法并行读取多个文件,并且仍然确保应用程序在加载完所有文件后启动?

1 个答案:

答案 0 :(得分:3)

非常简单。

var files = [...], remaining = files.length;
var callback = function () {
    remaining--;
    if (!remaining) {
        go();
    }
};
files.forEach(function(file) {
    fs.readFile(file, callback);
});