Ordem lógica das atribuições | Fórum | School of Net

Deseja poder participar de nosso fórum e tirar todas as suas dúvidas?
Clique aqui e assine nosso plano de acesso ilimitado. Saiba mais.

por Leomar

1 mês atrás Leomar

Ordem lógica das atribuições

Na penúltima aula sobre eventos pude notar que o 'contador de cliques' apresenta a seguintes mensagens "--- BEGIN 1---" e "--- END 1---", posteriormente "--- BEGIN 2---" e "--- END 2---", e assim, sucessivamente... Parece que o console.log não aguarda o método (setState) do react atribuir o valor a variável, portanto, fiz a inserção de um setTimeout() para esperar um pouco e então imprimir os valores (conforme fonte abaixo) resultando em mensagens: "--- BEGIN 1---" e "--- END 2---", posteriormente "--- BEGIN 2---" e "--- END 3 ---". Isto é um comportamento padrão? - imagino que sim devido as características do javascript, mas gostaria que comentasse a respeito como por exemplo, problemas que podem ocorrer devido a este comportamento, com identificar e situações que vivenciou ou que ainda julgar relevantes por gentileza. ``` clickMethod = () => { console.log(`--- ${this.state.clicked} ---`); console.log("--- BEGIN ---"); this.setState({ clicked: this.state.clicked + 1 }); let self = this; setTimeout(function(){ console.log("--- END ---"); console.log(`--- ${self.state.clicked} ---`); }, 1000); } ```

2 Respostas