Rest 如何使用Axios在nuxtServerInit中处理多个调度

Rest 如何使用Axios在nuxtServerInit中处理多个调度,rest,vue.js,axios,vuex,nuxt.js,Rest,Vue.js,Axios,Vuex,Nuxt.js,对于某些上下文:我正在使用axios从API收集数据,并使用nuxtServerInit将其添加到我的Nuxt应用程序中的Vuex存储。我使用文档中推荐的方法从我的index.js文件发送请求 问题是,虽然这在技术上是可行的(商店中的所有设置都是正确的),但我最终在我的index.js文件中有一长串等待分派(…)表达式。这似乎不是一种非常有效的方法(或者说它的预期用途是什么,因为我在任何文档中都找不到类似的配置),我想知道我在实现中是否误解了axios或nuxt文档。我一直在研究Promise.

对于某些上下文:我正在使用axios从API收集数据,并使用
nuxtServerInit
将其添加到我的Nuxt应用程序中的Vuex存储。我使用文档中推荐的方法从我的
index.js
文件发送请求

问题是,虽然这在技术上是可行的(商店中的所有设置都是正确的),但我最终在我的
index.js
文件中有一长串
等待分派(…)
表达式。这似乎不是一种非常有效的方法(或者说它的预期用途是什么,因为我在任何文档中都找不到类似的配置),我想知道我在实现中是否误解了axios或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')
    ...
    ...
  }
}
export const actions = {
  async storeDispatchInit ({ commit }) {
    const { data } = await axios.get(`${this.$axios.defaults.baseURL}/endpoint-1`)
    commit('SET_ALL', data)
  }
}
app/store/endpointOne.js

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

我也很高兴听到这是正确的配置毕竟

这是
return Promise.all(['endpointOne',/*…*/].map(ns=>dispatch(ns+'/storeDispatchInit'))
而不是
wait
s。这里还有什么麻烦吗?嗨@EstusFlask,谢谢你的回复-我已经尝试过了,但我得到了错误:
解析错误:意外的令牌,预期“,”
所以我不确定我的错误在哪里…?我想我的问题也有点笼统,这是构造
nuxtServerInit
请求的常用方法吗?
在我的代码中缺失,可能是个问题。我不太使用Nuxt,因此首先可以为Vue/Vuex说话。似乎可以对父模块中的嵌套Vuex模块执行storeDispatchInit,如图所示。这样,您只需要在nuxtServerInit中进行一次调度,对我来说似乎更干净。