我有一个vue
项目是vuex
跟vue router
和vue resource
结合的,然后我有一个列表是从服务器异步获取数据再显示的,我在vue
组件的route
的data
钩子函数中要调用一个vuex
的action
获取数据,action
是用vue resource
写的
代码如下:
home.vue
<div v-if="$loadingRouteData">loading...</div><div v-else> <list v-for="item in list">list...</list> </div>
vuex: { getters: { list: listGetters }, actions: { getList } }, route: { data () { this.getList(); } },
actions.js
export const getList= ({dispatch}) => { api.getList().then(response => { if (!response.ok) { return dispatch('GET_LIST_FAILURE'); } else { dispatch('GET_LIST_SUCCESS', { list: response.list }); } }, response => { dispatch('GET_LIST_FAILURE'); }) }
我看vue router
的文档说要在data
钩子函数里面返回一个promise
,但我的getList是包含一个vue resource的promise的,但是我在data钩子函数里如上面代码直接调用的话是同步resolve的,怎么实现在数据获取之后变为resolve?
慕哥6287543