如何在promise.all中异步等待



i wnna制作了一个API,加载pokemons列表,当它是镜像时。得到了列表,并想确保图片的顺序将是正确的,我console.log相同的名称。顺序错误。在不同的地方尝试了一些异步等待,但不知道如何获得正确的顺序https://codepen.io/DeanWinchester88/pen/ExvxdxX

Promise.all(arrForFetch)
.then(files => {
files.forEach(file => {
console.log("files", file)
process(file.json())
})
.catch(err => console.log("tobie pizda ucziekaj"))
})
let process = (prom) => {
console.log(prom)
prom.then(data => {
console.log(data.name)
})
}
const results = await Promise.all(arrForFetch)
// do something with results array

您的问题是file.json()是异步的,因此需要从循环中作为另一个Promise all返回,或者在循环中等待。你可以映射承诺。

Promise.all(arrForFetch)
.then( files  =>{
const more = files.map(file=>file.json().then(process))
return Promise.all(more)
})
.catch(err  =>  console.log("tobie pizda ucziekaj"))

Promise.all(arrForFetch)
.then( async files  =>{
for(const i=0; i<files.length; i++){
console.log("files", files[i])
process(  await files[i].json() )
}
})
.catch(err  =>  console.log("tobie pizda ucziekaj"))

相关内容

  • 没有找到相关文章

最新更新