データを平坦化して非正規化しようとしています。私は約束を使ってこれを達成する方法を理解していません。私は何が欠けていますか?約束事を使用して入れ子になったjsonを非正規化する方法は?
私は取得しています結果は次のとおりです。
Bob,Nancy
Bob,Nancy
しかし、私は取得したい:
Bob,Sue
Bob,Nancy
コード:
var Promise = require('bluebird');
var jsonData = {
"Parents": [{
"Name": "Bob",
"AllChildren": [{
"Name": "Sue"
}, {
"Name": "Nancy"
}]
}, {
"Name": "Ron",
"AllChildren": [{
"Name": "Betty"
}, {
"Name": "Paula"
}]
}, {
"Name": "Peter",
"AllChildren": [{
"Name": "Mary"
}, {
"Name": "Sally"
}]
}]
};
var promises = Promise.map(jsonData.Parents, function(parent) {
var record = {};
record.ParentName = parent.Name;
var allRecords = Promise.map(parent.AllChildren, function(child) {
var fullRecord = record;
fullRecord.ChildName = child.Name;
return fullRecord;
});
return Promise.all(allRecords);
});
console.log(JSON.stringify(promises, null, 2));
パーフェクト!ありがとうございました。 – Dan
チェーンのどこにでも '.tap(console.log)'を追加することで、すべてのポイントでチェーン値をconsole.logできます。それはあなたが何が起こっているのかをもっと簡単に理解できるようにします。 –