Ver Mensaje Individual
  #4 (permalink)  
Antiguo 14/08/2019, 21:49
augusto_jaramil
 
Fecha de Ingreso: junio-2004
Ubicación: Ciudad de Panama
Mensajes: 551
Antigüedad: 19 años, 10 meses
Puntos: 8
Respuesta: .catch en axios no tiene efecto

Hola de nuevo pues......

Hasta el momento la vaina va así:

1. Una vez ocurre el error del query el texto completo del error entra como si la respuesta fuese exitosa (status 200), pero ejecuta solamente y únicamente la primera instrucción definida dentro del .then y luego pasa a ejecutar las instrucciones dadas dentro del .catch

2. Cuando entra al .catch, según mi código

Código Javascript:
Ver original
  1. .catch(function (error) {
  2.  
  3. alert(error);
  4.  
  5.     var errorObject=JSON.parse(JSON.stringify(error));
  6. alert(errorObject);
  7.  
  8.     $.each(errorObject.data, function (i,dato) {
  9.       alert(errorObject);
  10.       console.log(errorObject.data);
  11.         if (errorObject.data[i].estado) {
  12.           alert(errorObject.data[i].descr);
  13.         }
  14.     })
  15.   });

el primer alert(error) es TypeError: cannot use 'in' operator to search for 'length' in '<br />
<b>Warnin...'
y el segundo alert(errorObject) da [object Object]. El $.each brilla por su ausencia (No pasa nada).

3. La buena noticia para este pecho es que al fín pude solucionarlo, bien o mal pero funcionó para mí. Como dije, al ocurrir el error de query se ejecuta la primera instrucción que se indica en el .then, entónces hice que esa primera instrucción fuese almacenar en una variable global el mensaje de error y en el .catch trabajo esa variable global y así puedo mostrarla en algún lado o de cualquier manera, como puede ser, por ejemplo, en un alert....

Así funcionó para mí.... si hay otra solución más mejor que esta, bienvenida sea....


Hasta depues pues, y sigan siendo felices....
__________________
El que no sabe y sabe que no sabe, es un ignorante...enseñémosle!. El que no sabe y se cree que sabe, es un necio... ¡ignorémosle!.
El que sabe y sabe que sabe, es un sabio... ¡sigámosle!.