vue执行顺序问题, 请教各位大佬
粉丝福利 : 关注VUE中文社区公众号,回复视频领取粉丝福利
在router.beforeEach中有一个store.dispatch(‘GenerateRoutes’)
return new Promise(resolve => {
const loadRolesAsyncRoutes = loadRoles(asyncRoutes)
let accessedRoutes
if (roles.roles.includes('admin')) {
accessedRoutes = loadRolesAsyncRoutes
} else {
accessedRoutes = filterAsyncRoutes(loadRolesAsyncRoutes, roles.roles)
}
commit('SET_ROUTES', accessedRoutes)
resolve(accessedRoutes)
})
}
function loadRoles(asyncRoutes) {
asyncRoutes.forEach(item => {
if (item.children) {
loadRoles(item.children)
} else {
if (item.meta) {
if (!item.meta.roles) { // 需要挂载角色
getRoleByMenu({ menuName: item.name }).then(response => {
debugger
item.meta.roles = response.data
})
}
}
}
})
return asyncRoutes
}
在loadRolesAsyncRoutes中loadRoles调用后台api获取角色, 为什么GenerateRoutes执行完毕后才会执行loadRoles?