项目中有个列表,该列表包含了一个用户的ID,
现在由于某个曹丹的原因后台无法同时在这个接口中提供该用户的姓名,只是提供了一个查询用户信息的接口,
data(){
return{
page:1,
formData:{},
tableData:[]
}
},
created(){
let _this = this
this.getList(this.page,this.formData).then(res=>{
res.data.forEach(item=>{
if(item.userId){
_this.getUserName(item.userId).then(items=>{
item.nickName = items
})
}
_this.tableData = res.data
//打印的tableData中包含了已经获取到的昵称信息
console.log(_this.tableData)
})
})
},
methods:{
//获取列表数据
getList(page,formData){
return new Promise((resolve,reject)=>{
this.axios('url',formData).then(res=>{
if(res.success){
resolve(res.data)
}else{
reject()
}
})
})
},
//通过ID获取用户昵称
getUserName(id){
return new Promise((resolve,reject)=>{
this.axios('url?id='+id).then(res=>{
if(res.success){
resolve(res.data.userBasic.nickName)
}else{
reject()
}
})
})
}
}
我这么写了之后发现数据获取在渲染之后,
尝试过在mounted中使用$nextTick()调用同样无法在渲染前获取,
这是为什么,该怎么处理
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…