Как обрабатывать несколько отправок в nuxtServerInit с помощью Axios - PullRequest
0 голосов
/ 14 марта 2020

Для некоторых context : я собираю данные из моего API с помощью ax ios и добавляю их в хранилище Vuex в моем приложении Nuxt с помощью nuxtServerInit. Я использую модули с пространством имен , как рекомендовано в документации, для отправки запросов из моего index.js файла.

Проблема заключается в том, что пока технически работает (все правильно настроено в магазине), я получаю длинный список выражений await dispatch(...) в моем файле index.js. Похоже, это не очень эффективный подход (или предполагаемое использование, так как я не могу найти подобную конфигурацию ни в одном из документов), и мне интересно, неправильно ли я понял документацию ax ios или nuxt в моя реализация. Я изучал Promise.all(), но не вижу, как бы я это реализовал здесь. Надеюсь, у кого-нибудь есть совет!

Это пример конфигурации, к которой я пришел с этим подходом:

app/store/index.js

export const actions = {
  async nuxtServerInit ({ commit, dispatch }) {
    await dispatch('endpointOne/storeDispatchInit')
    await dispatch('endpointTwo/storeDispatchInit')
    await dispatch('endpointThree/storeDispatchInit')
    ...
    ...
  }
}

app/store/endpointOne.js

export const actions = {
  async storeDispatchInit ({ commit }) {
    const { data } = await axios.get(`${this.$axios.defaults.baseURL}/endpoint-1`)
    commit('SET_ALL', data)
  }
}

Я также был бы рад услышать, что в конце концов это правильная конфигурация ...!

...