• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
    • Questions
    • Teachers
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

182
Views
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); }); } } }
almost 3 years ago · Juan Pablo Isaza
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error