vue执行顺序问题, 请教各位大佬
发布于 14天前 作者 YXxy1002 658 次浏览 来自 问答
粉丝福利 : 关注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?

6 回复

就是所有加载完毕 页面出来了以后才去执行getRoleByMenu调后台api 为什么是这样的

有人知道吗

看看钩子喽, 没啥毛病

你是在哪里引用这个js的

回到顶部