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

81
Visualizações
Cómo contar números usando promesa

Quiero contrarrestar algún número usando la promesa de que el resultado es 1,2,3, hecho y lo he codificado así

 const state = true const count = new Promise((resolve, reject) => { if (state) { resolve("counter work") for (let i = 1; i <= 3; i++) { setTimeout(() => { console.log(i); }, 1000); } console.log("done"); } else { reject("counter not work") } }) count .then((response) => console.log("success", response)) .catch((response) => console.log("failed", response));

y el resultado es: hecho, 1,2,3 pero quiero el resultado 1,2,3, hecho

¿Alguien puede decir por qué mi código tiene un resultado así y cómo debería ser el código?

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

0

Dejando a un lado la resolución temprana, la razón por la que "hecho" se registra primero es que está llamando a setTimeout en un bucle. setTimeout no bloquea la ejecución, pone en cola una devolución de llamada para que se ejecute después de un tiempo y regresa de inmediato. Entonces, solo está creando tres tiempos de espera que se activarán aproximadamente un segundo después de que haya salido del ciclo y registrado "hecho".

Para crear un temporizador, puede llamar condicionalmente a setTimeout dentro de la devolución de llamada:

 new Promise((resolve, reject) => { let i = 0 function increment () { i++ console.log(i) if (i < 3) { setTimeout(increment, 1000) } else { console.log('done') resolve() // to mark the promise as completed } } setTimeout(increment, 1000) })
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