Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

132
Visualizações
¿Por qué las funciones del componente React no se interrumpen/terminan cuando se cambia el estado?
function App() { const [buttonClick, setButtonClick] = useState('No') async function handleClick(){ setButtonClick('Yes') const sleep = (ms) ={return new Promise(resolve => setTimeout(resolve, ms))} await sleep(2000) console.log('this ran after state was changed') } return( <> <button onclick={handleClick}>Click me</> {buttonClick} </> ) }

¿Cómo es que si hago clic en el botón, que establece el estado de buttonClick, no sale de la función? Todavía duerme durante 2 segundos y luego registra mi mensaje en la consola.

Mi opinión es que, dado que hace que un componente se vuelva a renderizar, me llevaría a creer que la aplicación de función está regresando y se rompería con la función handleClick.

Mis pensamientos sobre por qué esto podría ser es que podría ser cuando se compila React, solo está almacenando el valor de la devolución en otro lugar, y en realidad no devuelve la función más amplia App ().

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Esto tiene más que ver con cómo funciona Javascript en lugar de React, haré todo lo posible para explicar:

  1. Cuando hace clic en el botón, se invoca la función handleClick .
  2. handleClick ahora está en la pila de llamadas y no terminará hasta que se devuelva un valor o se produzca un error.
  3. La primera instrucción en handleClick es actualizar el estado; sin embargo, actualizar el estado no terminará la invocación de handleClick e incluso si el componente se desmontara antes de que tuviera la oportunidad de finalizar, cualquier llamada a setButtonClick en un componente desmontado daría como resultado lo que se conoce como pérdida de memoria .
  4. Además, la naturaleza setTimeout y async de esta función terminará en varias partes del bucle de eventos , pero eso tiene poco que ver con la pregunta original.

Puede obtener más información sobre la naturaleza de las funciones de Javascript aquí .

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda