Если предположить, что вы запрашиваете вызовы на номер this.setState({cardBack: ...})
в том порядке, в котором вы совершили вызовы fetch()
, то вы можете сделать это, собрав все результаты fetch()
в Promise.all()
. , Это запустит их все параллельно, но соберет все результаты по порядку. Затем, когда все это будет сделано, вы можете позвонить this.setState()
по каждому результату в том порядке, в котором вы отправили fetch()
запросов:
class Cardcontainer extends Component {
state= {
pokemon: [],
cardBack: []
}
componentDidMount() {
fetch('https://pokeapi.co/api/v2/pokemon')
.then(res => res.json())
.then(res=> {
this.setState({pokemon: [...res.results]});
return Promise.all(this.state.pokemon.map(poke=> {
return fetch(poke.url).then(res => res.json())
}));
}).then(results => {
// process all the results in order
results.forEach(res => {
this.setState({
cardBack: [...this.state.cardBack, res]
})
})
});
}
Если это не то, о чем вы просите, пожалуйста, отредактируйте свой вопрос, чтобы сделать запрос более понятным.