Vue.js 在循环中进行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

我试图在循环中进行ajax调用。但看起来我们不能,所以我想知道如何避免这种情况

我正在搜索,我有一个格式化数据的方法:

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){