Tengo una función que hace una llamada a axios.get. Dentro del .then, hay un contador que se debe incrementar. Ahí adentro, el valor es correcto, pero cuando consulto el valor del contador fuera de esa función, no está actualizado a pesar de haberse cumplido la solicitud, y no entiendo por qué.
He leído y consultado un montón pero nadie me puede responder por qué.
No quiero cambiar el código otra vez, dado que si la consulta fue respondida y la variable es global, aunque sea una solicitud asíncrona, debería estar actualizada.
Código:
var errores_personal_cnt = 0; function validar(dato_a_validar, url, secc, control) { var datastr = url + '?secc=' + secc + '&dato=' + dato_a_validar; axios.get(datastr) .then(response => { var estado = response.data; "Respuesta: " + console.log(estado); if (estado != 1) { control.style.borderColor = "red"; control.style.backgroundColor = "red"; control.title = estado; errores_personal_cnt++; errores_personal += "\t- " + estado + "\n"; return false; } else { control.style.borderColor = "lightgreen"; control.style.backgroundColor = "lightgreen"; control.title = "Correcto"; return true; } }) .catch(response => { "Respuesta: " + console.log(response.data); console.log("Estado: error -> " + response.data); control.style.backgroundColor = error_app; control.style.borderColor = error_app; control.title = "Ha ocurrido un error con la aplicación. Intentalo nuevamente en unos segundos."; errores_personal_cnt++; errores_personal += "\t- ha ocurrido un error en la validación\n"; return false; }); }