我在一个项目上使用vuex。在商店上,我做了一个函数,它从一个ID数组返回一个形成API的所有用户的信息。像这样的东西:
async function getUsersdata(userIds){
let userData = new Array()
userIds.forEach(async (id) => {
const url = baseUrl + id + '/'
const data = await getUserDetails(url)
userData.push(data)
})
return userData
}
稍后,我将使用此函数,并且当我尝试在数组上执行一次foreach时,该函数将返回前叉不起作用。但是,如果控制台记录了整个阵列,则该阵列将正确显示
let Users = await getUsersdata(idArray)
console.log(await Users)
Users.forEach(User => console.log(User.name))
当我尝试控制台记录数组的长度时,它也会返回undefined或0,并且当我使用诸如.sort()或.map()之类的函数时,它也不会执行。
Async await在内部不起作用forEach
,intead应该使用for
迭代器。
async function getUsersdata(userIds){
let userData = new Array()
for(var i=0; i<userIds.length; i++) {
const id = userIds[i]
const url = baseUrl + id + '/'
const data = await getUserDetails(url)
userData.push(data)
}
return userData
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句