Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

94
Vistas
Encadenamiento de promesas de Node.js

Soy nuevo en Node.js y puedo ejecutar estos comandos uno por uno usando promesas:

 let promise1 = new Promise(function (resolve, reject) { sftp.connect({ host: host, username: user, privateKey: fs.readFileSync(pemfile) }).then(() => { return sftp.get(remotePath, fs.createWriteStream(localPath)); //This writes from a remote file to a local file }).then(() => { sftp.end(); resolve(); }) .catch(err => { console.error(err.message); reject(err); }); }); await promise1; let promise2 = new Promise(function (resolve, reject) { fs.readFile(localPath, 'utf8', function (err, data) { if (err) { reject(err); } resolve(data); }); }); let data = await promise2;

Esto funciona, pero sé que no es la mejor manera de hacerlo. ¿Hay una mejor manera de hacer esto?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

await se puede usar directamente con métodos que devuelven la promesa como sftp.connect , sftp.get , sftp.end para que pueda usarlo directamente y la función esperará hasta que se complete el paso. Solo fs.readfile no devuelve una promesa, pero podemos llamar a fs.promises.readFile() que devuelve la promesa y luego podemos usar await .

El código se puede simplificar:

 try { await sftp.connect({ host: host, username: user, privateKey: fs.readFileSync(pemfile) }) await sftp.get(remotePath, fs.createWriteStream(localPath)); await sftp.end(); let fileData = await fs.promises.readFile(localPath, 'utf8'); console.log(fileData); } catch (error) { console.error(error.message); }

Se ha agregado el bloque try-catch para capturar errores de cualquier acción.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda