axios实现同步传输方法

vue 中在for循环里使用axios传数据,现在是上一条axios没有结束,下一条就又来了,如何改造,能让axios结束后再进入下一次循环,或者是axios实现同步传输

insertRepository() {
            for (let i = 0; i < this.datasource.length; i++) {
                axios({
                    url: 'url',
                    data: {
                        datasource: this.datasource[i]
                    },
                    method: 'post',
                }).then((res) => {

                })
            }
        },

改为递归

可以改造一下

async insertRepository() {
  for (let i = 0; i < this.datasource.length; i++) {
    try {
      const res = await axios.post('url', {
        datasource: this.datasource[i]
      });
      // 处理 res
    } catch (error) {
      // 处理异常
    }
  }
}

首先将 insertRepository() 方法声明为 async,然后在 for 循环中使用 await 关键字来等待上一条 axios 请求结束后再执行下一条请求。这样就能够实现同步传输的效果,确保每次请求都在上一次请求结束后再进行。
需要注意的是,使用 async/await 的方式需要将 axios 请求包装在 try/catch 语句中,以便于捕获请求过程中可能出现的异常。同时,我们还可以在 try 中处理返回的结果 res,在 catch 中处理异常 error。