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

258
Vistas
Rechazo de promesa no capturado por .catch()

Tengo algunos problemas con una gran aplicación JS en la que he estado trabajando durante un tiempo. Necesitábamos una ubicación centralizada para arrojar varios errores de la API. Tuve un poco de idea y decidí que un buen enfoque sería enviar todas las llamadas API a través de una función en la clase de servicio API principal.

Así que reescribí todas las llamadas a la API en mis tiendas para utilizar este nuevo método de llamar a la API, pero ahora algunas solicitudes ya no arrojan los errores correctos.

Me pregunto si hay demasiadas promesas anidadas o algo así, ya que estamos usando código generado para el cliente API en la aplicación frontend. Entonces, en el siguiente ejemplo, la devolución de anAsyncApiCallHere sería una promesa.

Encontré circunstancias para activar un 422 de nuestra API para una solicitud, pero por alguna razón, simplemente no puedo hacer que .catch en mi tienda se active cuando ocurre el reject(err) .

Aquí hay un código de ejemplo que raspé para explicarlo mejor:

 // API Service code: const ApiService = { callApi(module, request, ...args) { return new Promise(resolve, reject) { this[module][request].call(null, ...args).then(response => { resolve(response); }).catch(err => { // I do my extra logic/centralised error message stuff here based on response code // ^ this works // the reject line below does not seem to work reject(err); }); } }, moduleA: { requestA(argumentOne, argumentTwo) { return anAsyncApiCallHere(argumentOne, argumentTwo); } } } // in store: export default const StoreModule = { actions: { makeAnApiCall() { let argumentOne, argumentTwo; ApiService.callApi('moduleA', 'requestA', argumentOne, argumentTwo).then(response => { // This section works. console.log(response); }).catch(err => { // This section isn't working. console.error(err); }); } } }
about 4 years ago · Juan Pablo Isaza
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