... но то, что передается в Promise.all (), неизвестно при запуске сценария.
Все в порядке, вы можете использовать map
вместо forEach
, а затем дождаться результата:
fetch('https://reqres.in/api/users')
.then(r => r.json()).then(r =>
Promise.all(r.data.map(x =>
fetch('https://reqres.in/api/users') // (presumably there's some parameter here, you're not just repeating the same call...)
.then(r => r.json())
.then(r => {
r.data.forEach(x => console.log(x.id))
})
))
);
Цепочка вышеуказанных возвратов не будет исчерпана, пока все обещания, созданные в map
, не будут решены или одно из них не отклонено.