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

188
Vistas
Cloudinary api - promesa de resolución

Quiero escribir una función que devuelva un booleano que indique si una imagen con el public_id especificado ya existe en mi espacio de Cloudinary.

Puedo registrar el resultado en la consola con el siguiente código:

 function isUploaded(public_id) { cloudinary.api.resource(public_id, function(response){ console.log(response.hasOwnProperty('public_id')); }); }; isUploaded('test');

Sin embargo, quiero pasar el resultado, el booleano, a otra función. El uso de una declaración de devolución da como resultado que se registre { state: 'pending' } :

 function isUploaded(public_id) { return cloudinary.api.resource(public_id, function(response){ return response.hasOwnProperty('public_id'); }); }; console.log(isUploaded('test'));

Esto tiene algo que ver con JavaScript Promises. Sin embargo, parece que no puedo reestructurar mi código para que funcione. Cualquier ayuda sería muy apreciada.

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

El problema es que cloudinary.api.resource se ejecuta de forma asíncrona (por eso requiere una función de devolución de llamada).

Puede hacer que su función isUploaded devuelva una Promise que se resuelve una vez que se llama a la devolución de llamada.

 var cloudinary = require('cloudinary'); function isUploaded(public_id) { return new Promise(function (resolve, reject) { cloudinary.api.resource(public_id, function(response) { var isUploaded = response.hasOwnProperty('public_id'); resolve(isUploaded); }); }); }; isUploaded('test') .then(function (result) { console.log(result); })
over 4 years ago · Santiago Trujillo Denunciar

0

Tenga en cuenta que api.resource() tiene una tasa limitada (parte de la API de administración ), por lo que esta no es una solución "escalable".

Puede realizar una solicitud HEAD y obtener el statusCode de estado de la respuesta: 200 significa que el recurso existe en su cuenta, 404 de lo contrario.

Por ejemplo -

 var http = require('http') var options = {method: 'HEAD', host:'res.cloudinary.com',path:'/<cloud_name>/image/upload/<yourimage.jpg>'} var req = http.request(options, function(res) {console.log(res.statusCode);}); req.end();
over 4 years ago · Santiago Trujillo 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