react+antdesign async promise 解决地域回调问题

点点圈 提交于 2020-01-18 03:15:26

需求:必须第一个执行完毕后才能走第二个;没有用到resolve是因为axios本身就是promise的封装所以这里不需要

没有使用promise的情况

 componentDidMount() {
        // 传入当前用户的角色id
         Service.loadUserRoles(this.props.data.id).then(res => {
            console.log(res)
         }).then(result => {
             Service.loadAllRoles().then(res => {
                console.log(res)
            })
        })
}

使用promise的情况

  // 异步加载解决地域回调问题 
    async componentDidMount() {
        // 传入当前用户的角色id
        let userRoles = await Service.loadUserRoles(this.props.data.id)//加载用户关联的角色信息
        let roles = await Service.loadAllRoles()
        // 匹配当前用户已有的角色推入allCheckedRole
        let checkedRoleArr = []
        userRoles.data.forEach(userRole => {
            let roleInfo = roles.data.find(role => role.id === userRole.roleId)
            if (roleInfo) {
                checkedRoleArr.push(roleInfo)
            }
        })
        this.setState({
            userRoles: userRoles.data,
            allRole: roles.data,
            allCheckedRole: checkedRoleArr
        })

    }

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!