|
|-foo.json
|-bar.json
|-qux.json
|-baz.json
|-zot.json
每个JSON文件都有一个属性
children
foo.json文件
{
"id": "foo",
...
"children": [
"bar.json",
"baz.json"
]
...
}
这么说吧bar.json文件没有一个
儿童
{
"id": "baz",
...
"children": [
"zot.json"
]
...
}
我正在尝试编写一个Node程序,它将列出给定JSON文件的后代。意思是为了
foo.json
它应该输出
[bar, baz, zot]
fs-extra
读取JSON文件。
如果我是同步的,我会写这样的东西:
const fs = require('fs-extra');
var descendants = ["foo.json"];
for(var k = 0; k < descendants.length; k++){
var obj = fs.readJsonSync(descendants[k]);
if(obj.children) descendants.concat(obj.children);
}
return descendants;
注:
但我想用承诺来做这件事。我的问题是我似乎无法解决每个文件的承诺并将结果添加到
descendants
用承诺来做这件事的正确方法是什么?特别是,我一直在尝试使用
Q.js
reduce
但到目前为止我还不能正确地编写代码。