es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

El código en axios().then evita que se ejecute la confirmación de Vuex.

¿Alguien puede decirme por qué un método de conversión de fecha auto-definido en axios().then evita que vuex commit haga el commit?

Aquí hay un extracto de código:

fetchUsers({ commit }) {
    return new Promise((resolve, reject) => {
        axios
            .get("/v1/usuarios")
            .then((response) => {
                for (var i = 0; i < response.data.length; i++) {
                    response.data[i].creado_En = DateConverter(
                        response.data[i].creado_En
                    );
                    response.data[i].actualizado_En = DateConverter(
                        response.data[i].actualizado_En
                    );
                }

                commit("FETCH_USERS", response.data);
                resolve(response);
            })
            .catch((error) => {
                if (error.status === 401) {
                    alert(error);
                    reject(error);
                }
            });
    });
},

La función del conversor util funciona porque la he usado antes en cada componente en sí.
Pero necesito los datos de fecha convertidos en mi tienda vuex. Si elimino la línea del bucle for, se ejecuta el commit.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Es posible que el problema con el método convertidor de fecha auto-definido en el bloque .then de Axios que evita que el commit de Vuex se ejecute sea debido a la naturaleza sincrónica de JavaScript. Debido a que el commit de Vuex depende de que el código en el bucle for termine de ejecutarse, cualquier retraso causado por la función de conversión podría hacer que el commit no se ejecute. Una posible solución a este problema podría ser utilizar una versión asincrónica de la función de conversión, o refactorizar el código para manejar la conversión fuera del almacenamiento Vuex antes de hacer commit de los datos.

Comments are closed.