Объясните, может кто знает
Такой код
const [count, setCount] = React.useState(0);
useEffect(()=>{
if(count===1){
history.push('/effect')
}
}, [count, history]);
const click = async ()=>{
setCount(1);
history.push('/click')
}
Вот тут useEffect не успевает работать, так как происходит редирект на страницу /click
Это понятно
Вот тут непонятно
Если сделать так
const [count, setCount] = React.useState(0);
useEffect(()=>{
if(count===1){
history.push('/effect')
}
}, [count, history]);
const click = async ()=>{
await new Promise(resolve=>{
setCount(1)
resolve(true)
});
history.push('/click')
}
Команду setCount если обернуть в промис
Тогда уже useEffect успевает сработать
и произойдет два роута
сперва в /click
а потом после useEffect сделает редирект в /effect
Что такого делает промис что setCount успевает дернуть useEffect
И почему без промиса она не успевает также дернуть useEffect