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

100
Vistas
Devolver valor de la secuencia a la función principal

Tengo una secuencia para escribir texto en un depósito de almacenamiento en la nube. Al finalizar, quiero que se devuelva un mensaje a la función principal.

Intenté devolver el flujo de búfer, pero esto me da el objeto de flujo de búfer completo. Solo quiero que me devuelvan el mensaje.

Por ejemplo, si tengo otra función que llama a Bucket, quiero que me devuelva el mensaje de que el archivo se ha cargado para poder mostrarlo en el navegador.

¿Cómo puedo arreglar esto?

 const toBucket = (message, filename) => { const storage = new Storage(); // Initiate the source const bufferStream = new stream.PassThrough(); // Write your buffer bufferStream.end(Buffer.from(message)); const myBucket = storage.bucket(process.env.BUCKET); const file = myBucket.file(filename); // Pipe the 'bufferStream' into a 'file.createWriteStream' method. bufferStream .pipe( file.createWriteStream({ validation: 'md5', }) ) .on('error', (err) => { // eslint-disable-next-line no-console console.error(err); }) .on('finish', () => { // The file upload is complete. const message = `${filename} is uploaded!`; // eslint-disable-next-line no-console console.log(message); return message; }); };

para uso en

 () => async { await things happening... const saved = toBucket(message,filename); sendToBrowser(saved); }
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

La función toBucket debería devolver una promesa, luego puede await en su función principal. Para hacer eso, simplemente envuelva la lógica de toBucket en una promesa

 const toBucket = (message, filename) => { return new Promise((resolve, reject) => { // return a promise const storage = new Storage(); // Initiate the source const bufferStream = new stream.PassThrough(); // Write your buffer bufferStream.end(Buffer.from(message)); const myBucket = storage.bucket(process.env.BUCKET); const file = myBucket.file(filename); // Pipe the 'bufferStream' into a 'file.createWriteStream' method. bufferStream .pipe( file.createWriteStream({ validation: 'md5', }) ) .on('error', (err) => { // eslint-disable-next-line no-console console.error(err); reject(err); // reject when something went wrong }) .on('finish', () => { // The file upload is complete. const message = `${filename} is uploaded!`; // eslint-disable-next-line no-console console.log(message); // return message; resolve(message); // return message and finish }); }) };

En la función padre:

 () => async { await things happening... const saved = await toBucket(message,filename); // await sendToBrowser(saved); }
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