需求:必须第一个执行完毕后才能走第二个;没有用到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
})
}
来源:CSDN
作者:周家大小姐.
链接:https://blog.csdn.net/qq_40190624/article/details/103837456