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

366
Vistas
¿Cómo puedo resolver o rechazar una promesa en base a otra promesa?
function process () { return new Promise((resolve, reject) => { //make sure module exists let module = modules[queueData.module]; if (!module) reject('module not found: '+queueData.module); //make sure processor exists let processor = fileProcessors[module.type]; if (!processor) reject('processor not found: '+module.type); return anotherPromiseFunction(); }) } processFile().catch(e => console.error)

anotherPromiseFunction() devuelve una promesa. normalmente dentro de un .then() puedo devolver una promesa para hacer que el then() espere a que finalice esa promesa, pero ¿cómo lo hago al crear una promesa?

¿Se supone que debo hacer esto?

 anotherPromiseFunction() .then(e=>resolve(e)) .catch(e=>reject(e))

Eso parece incorrecto...

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

0

Es probable que no necesite la new Promise . Los casos de "existe el módulo" y "existe el procesador" se pueden manejar por separado, y luego puede devolver la llamada a anotherPromiseFunction después de ellos:

 //make sure module exists let module = modules[queueData.module]; if (!module) { return Promise.reject(new Error('module not found: '+queueData.module)); } //make sure processor exists let processor = fileProcessors[module.type]; if (!processor) { return Promise.reject(new Error('processor not found: '+module.type)); } return anotherPromiseFunction();

Si la función envolvente es una función asíncrona, puede arrojar los errores en su lugar:

 async function run() { //make sure module exists let module = modules[queueData.module]; if (!module) { throw new Error('module not found: '+queueData.module); } //make sure processor exists let processor = fileProcessors[module.type]; if (!processor) { throw new Error('processor not found: '+module.type); } return anotherPromiseFunction(); }
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