在Vue中,axios是一个异步的HTTP请求库,无法直接改成同步。不过你可以使用async/await来实现类似的效果。以下是一个示例:

async yourFunction() {
  try {
    const response = await axios.get('your-url');
    const data = response.data;
    
    // 使用 forEach 遍历数据
    data.forEach(async item => {
      try {
        const itemResponse = await axios.get(`your-url/${item.id}`);
        const itemData = itemResponse.data;
        
        // 处理每个item的数据
        console.log(itemData);
      } catch (error) {
        console.error(error);
      }
    });
  } catch (error) {
    console.error(error);
  }
}

在上面的例子中,我们使用了async/await关键字来将axios请求转换为类似同步的写法。在forEach循环中,我们使用了async关键字来定义一个异步函数,然后在函数内部使用await关键字来等待每个请求的结果。这样就可以保证在处理每个item之前,先获取到了每个item的数据。请注意,forEach循环中的每次请求都是并行执行的,如果你希望按顺序执行,可以考虑使用for循环

vue 在forEach里 使用axios改成同步

原文地址: https://www.cveoy.top/t/topic/hZsp 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录