【发布时间】:2016-11-13 19:24:23
【问题描述】:
我知道我将在以下函数中提前返回,如何将递归承诺链接到我的结果?
我的目标是获取目录及其所有子目录中的文件列表数组。数组是一维的,我在这个例子中使用concat。
function iterate(body) {
return new Promise(function(resolve, reject){
var list = [];
fs.readdir(body.path, function(error, list){
list.forEach(function(file){
file = path.resolve(body.path, file);
fs.stat(file, function(error, stat){
console.log(file, stat.isDirectory());
if(stat.isDirectory()) {
return iterate({path: file})
.then(function(result){
list.concat(result);
})
.catch(reject);
} else {
list.push(file);
}
})
});
resolve(list);
});
});
};
【问题讨论】:
-
stackoverflow.com/questions/29020722/… 阅读并修改“return”
-
你的功能的目标是什么?你想最终得到什么?具有完整路径且没有目录的所有文件的递归列表?
-
@jfriend00 包含目录及其所有子目录中文件列表的任何数组。数组是一维的。
-
@user2727195 - 一如既往,请将您的代码目标添加到您的问题中。
-
好的,我已经按照我的目标进行了编辑
标签: javascript node.js recursion promise