Сообщение от рони
|
Judgin,
отвечает сервер с разными задержками, в разнобой, нужен порядок, вместо push используйте index, строки 61 и 68
|
Благодарю в очередной раз за помощь! Карму повысить хочу, но не могу). Однако возникла другая проблема. Передаю массив в следующий then, там перебираю его в цикле, нужные мне значения упаковываю в массив, но как этот массив передать за пределы цикла? Получаю ошибку "Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'pages')"
Promise.all(
newArr.map((title, index) => {
return new Promise((resolve) => {
fetch(`https://ru.wikipedia.org/w/api.php?action=query&prop=imageinfo&titles=${title}&format=json&iiprop=url&generator=images&origin=*`)
.then(response => {
return new Promise(() => {
response.json()
.then(movieObj => {
movieObjArr[index] = movieObj;
resolve();
})
})
})
})
})
)
.then(() => {
newArr2 = [];
movieObjArr.map(key => {
firstObjInMovieArr = key;
secondObjInMovieArr = firstObjInMovieArr.query;
thirdObjInMovieArr = secondObjInMovieArr.pages;
fourthObjInMovieArr = Object.values(thirdObjInMovieArr);
fifthObjInMovieArr = fourthObjInMovieArr[0];
movieImgUrlArr = fifthObjInMovieArr.imageinfo;
firstIndex = movieImgUrlArr[0];
movieImgUrl = firstIndex.url
newArr2.push(movieImgUrl);
})
})
.then(() => {
console.log(newArr2);
})