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

165
Visualizações
Esperar dentro de un bucle for dentro de una función asíncrona da un resultado extraño

¿Puede alguien ayudarme a explicarme por qué se comporta de esta manera?

Que yo sepa, agregar la línea await sleep(1) no debería afectar el flujo de código en este caso. Sin embargo, lo hace.

 function sleep(time) { return new Promise((r) => setTimeout(r, time)); } async function test(target) { const ids = { a: ['a1', 'a2'], b: ['b3', 'b4'] }[target]; for (id of ids) { console.log('X.', target, id); // await sleep(1); console.log('Y.', target, id); } } test('a'); test('b');

antes de

después

¿Por qué?

¡Gracias!

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

0

Intente usar for (const id of ids) { . Sin const o let , está definiendo id en el ámbito global.

 function sleep(time) { return new Promise((r) => setTimeout(r, time)); } async function test(target) { const ids = { a: ['a1', 'a2'], b: ['b3', 'b4'] }[target]; for (const id of ids) { console.log('X.', target, id); await sleep(1); console.log('Y.', target, id); } } test('a'); test('b');
about 4 years ago · Juan Pablo Isaza Relatório

0

No está esperando que finalice test('a') .

Cuando se alcanza test('b') , test('a') todavía se está ejecutando (porque es una función asíncrona). Si desea que termine antes de iniciar el otro, use .then() :

 test('a').then(()=>test('b'));
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