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

278
Vistas
Espere a que finalice la función de devolución de llamada de JavaScript

Estoy usando la API de almacenamiento de Google para guardar un archivo en el depósito de gcp en una función asíncrona. Quiero esperar hasta que obtenga un error o éxito en la devolución de llamada, solo entonces quiero continuar con otras líneas de código pero obtengo LastMessage antes del éxito o error.

https://googleapis.dev/nodejs/storage/latest/File.html#save

 await file.save(jsonData.trim(), {resumable : false}, function(error) { if (error) { console.log('error'); } else { console.log('success'); } }) console.log( "LastMessage: Error or Success is received, only then log this message")
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Tu .save() no está devolviendo la promesa. Más bien está dando una devolución de llamada. Puede crear un método de promesa tradicional para obtener lo que desea lograr. Aquí está el fragmento de código para eso:

 const saveFile = (jsonData) => { return new Promise((resolve, reject) => { file.save(jsonData.trim(), { resumable: false }, function (error) { if (error) { console.log('error'); reject() } else { console.log('sucess'); resolve() } }) }) } await saveFile() console.log("LastMessage: Error or Success is received, only then log this message")
about 4 years ago · Juan Pablo Isaza Denunciar

0

Hay un ejemplo en el documento.

https://googleapis.dev/nodejs/storage/latest/File.html#save-examples

 const {Storage} = require('@google-cloud/storage'); const storage = new Storage(); const myBucket = storage.bucket('my-bucket'); const file = myBucket.file('my-file'); const contents = 'This is the contents of the file.'; file.save(contents, function(err) { if (!err) { // File written successfully. } }); //- // If the callback is omitted, we'll return a Promise. //- file.save(contents).then(function() {});

No necesita usar await, para su ejemplo puede probar esto:

 file.save(jsonData.trim(), {resumable : false}) .then(() => nextFunc()) .catch(() => nextFunc()) function nextFunc() { console.log( "LastMessage: Error or Success is received, only then log this message") }
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