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

137
Visualizações
¿Por qué await no espera la devolución de llamada?

Cuando se usa await en una función con devolución de llamada, como fs.writeFile, await no espera a que se ejecute el código dentro de la devolución de llamada. Por ejemplo:

 const fs = require("fs") async function test() { for (let i = 0; i < 3; i++) { console.log(`processing ${i}`) const fileName = `${i}.json` await fs.writeFile(fileName, JSON.stringify(i), err => { if (err) throw err console.log(`file ${i} is written`) }) console.log(`${i} is done.`) } } test()

El código anterior produce:

 processing 0 0 is done. processing 1 1 is done. processing 2 2 is done. file 1 is written file 0 is written file 2 is written

en vez de:

 processing 0 file 0 is written 0 is done. processing 1 file 1 is written 1 is done. processing 2 file 2 is written 2 is done.

¿Alguien podría explicar por qué await no permite que termine de escribir el archivo antes de continuar?

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

0

Esto se debe a que writeFile no devuelve una Promise y await una resolución de Promesa antes de suspender la ejecución. Puede actualizar a la última versión de writeFile o escribir una función que devuelva una promise :

 const fs = require("fs") async function test() { for (let i = 0; i < 3; i++) { console.log(`processing ${i}`) const fileName = `${i}.json` await writeToFile(fileName, i); console.log(`${i} is done.`) } } function writeToFile(fileName, index) { return new Promise((resolve, reject) => { fs.writeFile(fileName, JSON.stringify(index), err => { if (err) { // denotes failure reject(err) } console.log(`file ${index} is written`); // denotes success resolve(true) }) }); } test()
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