Улучшенный пример выше, чтобы избежать избыточного переноса обещаний и использовать async / await для упрощенного кода:

имаю, vuex действия возвращают обещания, но я не нашелидеальный шаблон для обработки ошибок в vuex. Мой текущий подход - использовать перехватчик ошибок в моем плагине axios, а затем фиксировать ошибку в моем хранилище vuex.

в плагины / axios.js:

export default function({ $axios, store }) {
    $axios.onError(error => {
        store.dispatch('setError', error.response.data.code);
    });
}

в магазин / index.js:

export const state = () => ({
    error: null,
});

export const mutations = {
    SET_ERROR(state, payload) {
        state.error = payload;
    },
}

export const actions = {
    setError({ commit }, payload) {
        commit('SET_ERROR', payload);
    },
};

Я бы тогда использовалошибка компонента смотреть состояние ошибки и показать, есть ли ошибка. Таким образом, действительнонет необходимости ловить ошибки либо в моем действии, либо в компоненте, который отправил действие. Однако я не могу не волноваться, если этоплохой дизайн, оставляя исключения непокрытыми? С какими проблемами я мог бы столкнуться, если бы я обработал ошибки этим дизайном? Предложения о лучших способах сделать это?

Ответы на вопрос(2)

Ваш ответ на вопрос