了解JavaScript中的递归异步调用

时间:2017-08-04 16:23:09

标签: javascript node.js asynchronous

这个问题只是为了好奇。 我知道还有其他方法来做实际的事情。我只是想学习一些异步模式。

我想从根目录开始搜索特定文件。 所以我发现了文件模块:

https://github.com/mikeal/node-utils/tree/master/file

此模块提供异步file.walk(启动,回调)功能。 为每个找到的目录调用回调的地方。

想象一下这种情况我想找到具有特定名称的所有文件,将路径保存在数组中并稍后对它们进行协作处理。

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 我只是将我的进程(folderArray)放在搜索完成时调用的第三个回调中。

非常感谢。 最佳P

1 个答案:

答案 0 :(得分:0)

Async Call:Explained here

回调链接是一个选项,但它会创建 Callback Hell 所以
请改用Promise Chaining:Promise Exlpained Here