Используйте Array.prototype.map
, чтобы превратить массив value
в массив Promises, и вызовите .then
для Promise.all
этого массива.Вам также следует избегать антипаттерна Promise-as-callback, просто return
Обещание от одного .then
, чтобы связать его с следующим .then
, не создавая ненужных вложений:
function myFunction () {
fetch("https://jsonplaceholder.typicode.com/albums")
.then(first_response => first_response.json())
.then(arr => Promise.all(arr.map(item =>
fetch("https://jsonplaceholder.typicode.com/users")
.then(second_response => second_response.json())
.then(value => console.log(value))
)))
.then(() => {
console.log("DONE!!");
});
}
myFunction();
Обратите внимание, что ваштекущий код, по-видимому, не использует ничего в первом ответе, кроме длины результирующего массива, что довольно странно - если вы хотите использовать элемент, который вы перебираете (например, для создания нового URL-адреса для извлечения), используйте переменную item
в приведенной выше функции отображения.