【发布时间】:2017-08-04 16:23:08
【问题描述】:
这个问题只是为了好奇。 我知道还有其他方法可以做实际的事情。我只是想学习一些异步模式。
我想从根目录开始搜索特定文件。 于是我发现了文件模块:
https://github.com/mikeal/node-utils/tree/master/file
这个模块提供了一个异步 file.walk(start, callback) 函数。 为每个找到的目录调用回调。
想象一下,我想查找所有具有特定名称的文件,将路径保存在一个数组中,然后对它们进行协作处理。
import file = require("file");
var folderArray= [];
file.walk(path,function(err,file){
if(doesExist(file+"/mySpecialFileName")){
folderArray.push(file);
}
})
//when all sub directories are searched do something
process(folderArray)
如何确定所有目录都已搜索到并且可以继续处理。 例如在潜水模块中: https://github.com/pvorb/node-dive 我只是将我的 process(folderArray) 放在搜索完成时调用的第三个回调中。
非常感谢。 最佳P
【问题讨论】:
-
老实说,您引用的那个库看起来一团糟。它混合使用同步和异步文件 I/O,因此不是任何人都应该做的。对我来说,它在递归列出文件时提供任何通知并不明显。您应该以不同的方式执行此操作。要么编写自己的以正确方式执行此操作,要么找到具有更好的文档接口且不使用同步 I/O 的不同模块。
-
您好,感谢您的回复。我对异步编程很陌生,我只是想知道这个库是否可行。我也写了知道我自己的方法。我花了很长时间才发现这个库不是很好:(。
标签: javascript node.js asynchronous