Buenas!
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;
});
}