Vue.js 在循环中进行ajax调用
我试图在循环中进行ajax调用。但看起来我们不能,所以我想知道如何避免这种情况 我正在搜索,我有一个格式化数据的方法:Vue.js 在循环中进行ajax调用,vue.js,babeljs,axios,Vue.js,Babeljs,Axios,我试图在循环中进行ajax调用。但看起来我们不能,所以我想知道如何避免这种情况 我正在搜索,我有一个格式化数据的方法: async formatSearchUserByNameResults(results) { if (results.length > 0) { results.forEach((element) => { const currentUserData = await user.getUserById(ele
async formatSearchUserByNameResults(results) {
if (results.length > 0) {
results.forEach((element) => {
const currentUserData = await user.getUserById(element.id);
const aResult = searchBuilders.userBuilder(element);
aResult.following = currentUserData.folliwing;
this.searchResults.push(aResult);
});
}
},
getUserById函数进行ajax调用:
async getUserById(userId) {
const response = await axios.get(`${config.baseUrl}/users/${userId}`, { withCredentials: true });
return response.data;
}
但我总是犯这样的错误:
分析错误:wait是保留字
因为forEach是同步的
在循环中进行ajax调用还有其他选择吗
谢谢我不知道为什么会出现这样的错误,但有一个问题可能是传递到forEach()的匿名函数不是异步函数 尝试
async(element)=>{…
如果异步函数不跟踪它们是否完成的结果,我会避免使用异步函数。您可能会将它们包装成一个Promise.all()或者诸如此类的事情,以了解它们是否已完成。我不确定为什么会出现这种特定错误,但一个问题可能是,传递到forEach()的匿名函数不是异步函数 尝试
async(element)=>{…
如果异步函数不跟踪它们是否完成的结果,我会避免使用异步函数。您可能会将它们包装成一个Promise.all()或者诸如此类的东西,以了解它们是否已经完成。这是非常低效的,您真正想要实现的是什么,它让您使用了此解决方案?我建议您不需要在
formatSearchUserByNameResults
上使用wait/async,因为您已经在getUserById
上使用了它(get在哪里).BTW,你不需要if(results.length>0){
这是非常低效的,你真正想要实现的是什么?我建议你不需要在formatSearchUserByNameResults
上进行wait/async,因为你已经在getUserById
(get在哪里)。顺便说一句,你不需要if(results.length>0){