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

110
Vistas
Refactorizar la devolución de llamada de la biblioteca no estándar en promesa

Estoy usando el paquete fabricjs y quiero usar la función fabric.Image.fromURL . La documentación para esta función es la siguiente:

(estático) fromURL(url, callbackopt, imgOptionsopt)

Crea una instancia de fabric.Image a partir de una cadena de URL
Parámetros:

Nombre Escribe Atributos Descripción
URL Cuerda URL para crear una imagen desde
llamar de vuelta función <opcional> Devolución de llamada para invocar cuando se crea la imagen (la imagen recién creada se pasa como primer argumento). El segundo argumento es un booleano que indica si ocurrió un error o no.
imgOpciones Objeto <opcional> Objeto de opciones

Refactorizaría mi código para usar la notación Promise moderna en lugar de devoluciones de llamadas anidadas. ¿Puedo refactorizar esta función en una Promesa?

Actualmente, si quiero agregar dos imágenes seguidas, mi código se ve así:

 # add first image fabric.Image.fromURL(url1, function (oImg: any) { canvas.add(oImg); # add second image fabric.Image.fromURL(url2, function (oImg: any) { canvas.add(oImg); } })

Me encantaría poder reescribirlo como

 async def addImages() { await promisifiedImageFromURL(url1) await promisifiedImageFromURL(url2) }

He buscado en util.promisify ( https://nodejs.org/api/util.html#utilpromisifyoriginal ) pero esta función espera que la función correspondiente esté en un formato específico: una sola devolución de llamada de error primero. La función fromURL , por otro lado, está en un formato no estándar, que es donde tengo problemas

Estoy investigando funciones prometidas personalizadas, pero honestamente estoy sobre mi cabeza aquí

about 4 years ago · Santiago Gelvez
1 Respuestas
Responde la pregunta

0

const promiseFromUrl = (url, imgOptions) => { return new Promise((res, rej) => { const callback = (image, isError) => { if (isError) rej(new Error('Some error occurred')); else res(image); }; fromURL(url, callback, imageOptions); }); }
about 4 years ago · Santiago Gelvez 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