我遇到了一个问题,get_user()在console.log(usersOutput,'here')之后运行。我如何改变它,让get_user()先运行?
function get_user(user){
axios.get(`/api/admin/users`,{params:{idnum:user}}).then((user)=>{
console.log('got user')
return user.data
})
}
var UsersFormatter = function(c){
let usersOutput = 'waiting for change'
var usersOutput = get_user(c.cell.row.data.sessionUser)
console.log(usersOutput,' here')
return usersOutput
}发布于 2018-07-28 03:02:05
如果你不让它同步,就会阻塞线程,这是你永远不想做的。只需从函数返回promise,并传递promise而不是数据:
function get_user(user){
// return this promise
return axios.get(`/api/admin/users`,{params:{idnum:user}}).then((user)=>{
console.log('got user')
return user.data
})
}
var UsersFormatter = function(c){
// return this promise too, so callers of UserFormatter can get the data
return get_user(c.cell.row.data.sessionUser)
.then((data) => /* format data and return */)
}发布于 2018-07-28 03:01:13
您可以使用axios promise并使用async/await。所以就像这样:
function get_user(user){
return axios.get(`/api/admin/users`,{params:{idnum:user}})
}
var UsersFormatter = async function(
let usersOutput = await get_user(c.cell.row.data.sessionUser)
console.log(usersOutput,' here')
return usersOutput
}https://stackoverflow.com/questions/51564001
复制相似问题