我需要检查大量文件名,但我还需要响应网络客户端。最简单的方法是执行:
for(var i=0;i < array.length;i++) {
fs.readFile(array[i], function(err, data) {...});
}
,但数组可以是任意长度,比如 100000,因此一次执行 100000 次读取不是一个好主意,另一方面,执行 fs.readFileSync() 可能需要太长时间。还在回调中启动下一个 fs.readFile() ,如下所示:
var idx = 0;
功能检查文件(){
fs.readFile(array[Idx], function (err, data) {
idx++;
if (Idx < array.length) {
检查文件();
} 别的 {
idx = 0;
设置超时(检查文件,10000);// 在一秒后开始检查文件
}
});
}
也不是最佳选择,因为网络客户端会不断更新 array[] - 删除一些项目,添加新项目等等。
在 node.js 中完成此类任务的最佳方法是什么?