我需要检查大量文件名,但我还需要响应网络客户端。最简单的方法是执行:
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 中完成此类任务的最佳方法是什么?