私は複雑な約束を抱えており、結果が約束の終わりを待たないように見えます。ループで約束をまとめる
return Promise.all([
Radar.newRadar(1),
Radar.newRadar(2),
Radar.newRadar(3)
])
.then(newRadarIds => {
let RadarNotes = [];
return Promise.all([
_.map(newRadarIds, (radar_id) =>{
return Promise.all([
Radar.init(radar_id)
])
.then(kpis => {
return Promise.all([
Radar.addKpis(radar_id.radar_id, ...)
])
.then(radarAddKpi => {
RadarNotes.push({
year : radar_id.year,
data : kpis[0].data});
console.log('in map')
// return {
// year : radar_id.year,
// data : kpis[0].data}
})
.catch(err => {
console.error(err);
})
})
}) //end map
])
.then(result => {
console.log('her222e')
res.json(result)
})
.catch (err => {
console.error(err);
})
})
.catch(error => {
console.error(error);
})
「マップ内」の前に「ここ」という出力が表示されます。目的は配列を塗りつぶしてres.json
呼び出しでクライアントに送信することです。
私には何が欠けていますか?
'Radar.init(radar_idは)'約束を返すのですか? 'Radar.addKpis(radar_id.radar_id、...)は約束を返しますか? –
'Radar.addKpis(radar_id.radar_id、...)'はPromise.all([])の中に自分自身のことはもちろん、ファンキーに見えます –