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

211
Vistas
Javascript devuelve el mismo valor en luego y captura

En JS, digamos que llamo a una promesa de una manera de 'disparar y olvidar'. No me importa si tuvo éxito o no, y no me importa lo que devuelva, ya que quiero devolver el mismo valor de todos modos.

puedo llamar

return myPromise().then(() => foo).catch(() => foo);

¿Hay alguna manera de no repetir then y catch partes?

lo que he probado

Pensé en usar finally , pensando que tomará lo que finalmente regresa (similar a lo que hace Java al tomar el valor de retorno del bloque finalmente): return myPromise().finally(() => foo); Pero resulta que no hizo lo que esperaba. Según mdn , este valor de retorno se utilizará para rechazar en caso de que se rechace la promesa original.

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

0

Puede declarar su función de devolución de resultados una vez y luego reutilizarla dos veces para los .then() y .catch()

 const myReturn = () => foo; return myPromise() .then(myReturn) .catch(myReturn);

Puede acortar aún más esto usando ambos parámetros de .then() que manejan tanto la ruta de éxito como la de falla:

 const myReturn = () => foo; return myPromise() .then(myReturn, myReturn);

Si encuentra que necesita esto mucho, puede crear una pequeña función de biblioteca que tome un valor y devuelva dos funciones que simplemente se evalúan a él:

 const doubleThunk = val => [() => val, () => val];

Que se usaría así:

 return myPromise() .then(...doubleThunk(foo));
about 4 years ago · Juan Pablo Isaza Denunciar

0

Podría echar un vistazo a Promise.allSettled si está apuntando a navegadores más nuevos o versiones de Node.js.

Esta función devolverá una Promesa que resuelve si la Promesa pasada se resuelve o rechaza.

 function foo(results) { console.log('foo():', ...results) } // Success path Promise.allSettled([Promise.resolve('Yay')]).then(foo) // Failure path Promise.allSettled([Promise.reject('Doh')]).then(foo)
 .as-console-wrapper { max-height: 100% !important; }

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