У меня есть эта функция, и внутри цикла forEach
, который выполняет итерации по элементам желоба ... Я хочу добиться визуализации некоторого счетчика (загрузчика), пока не будут выполнены все запросы http
, пока цикл forEach
не будетсделанный.
То, как я сейчас пытаюсь, первый и последний console.log
срабатывает сразу, а затем регистрирует секунду console.log
столько раз, сколько элементов в массиве элементов.
Как я могу обновить состояние до loading: false
, когда итерация forEach
выполнена, когда выполнены все запросы http
?
someHandler = () => {
// this.setState({ loading: false })
console.log( "Not loading" )
this.props.items.forEach(item => {
axios
.get(`.../${item}/`)
.then(res => {
this.setState(prevState => ({
item: [
...prevState.item,
{
name: res.data.name,
img: res.data.img
}
]
}));
this.props.newItem(this.state.item);
// this.setState({ loading: true })
console.log( "Loading" )
})
.catch(err => {
console.log(err);
// this.setState({ loading: false })
console.log( "Not loading" )
});
});
// this.setState({ loading: false })
console.log( "Not loading" )
};