Я попытался упростить это немного вниз:Promise цепи, не дожидаясь обещает решить до окончания
passData.savedDBGames.forEach((gameInfo) => {
return new Promise((resolve, reject) => {
stats.getPlayersStats(gameInfo.fixtureID).then((playerStats) => {
playerStatsPromise.push(playerStats);
console.info('Grab Done');
resolve();
});
});
});
Promise.all(playerStatsPromise)
.then(function() {
console.info('All Done');
app.io.emit('admin', 'Admin: done');
resolve(passData);
});
моему пониманию Promise.all
должны ждать, пока все обещания, содержащиеся в playerStatsPromise
не решены?
Так почему же All Done
закончить до Grab Done
?
Что такое 'data2 '? – trincot
Ваш код не имеет смысла. 'forEach' в частности призван вызывать побочные эффекты, однако вы возвращаете новое обещание внутри него. – aaaaaa
'data2' был из большей цепочки обещаний. @aaaaaa Я сделал это, чтобы попытаться вернуть обещание, вот только я экспериментирую. –