如何用axios循环发起请求

发布于 2022-09-12 04:07:11 字数 809 浏览 14 评论 0

### 问题描述
循环发送axios post请求,post请求时间可能长达60秒或更多

### 问题出现的环境背景及自己尝试过哪些方法
用for循环发起axios请求,post参数number始终为空

### 相关代码

    PostAll: function() {
      for (var k in this.myListFilter)
        {console.log("myListFilter: " + this.myListFilter[k][0]);
        this.allNumber = this.myListFilter[k][0];
        console.log("allNumber: " + this.allNumber);
        this.$options.methods.PostAllEach();
        }
    },
    PostAllEach: function () {
      axios.post(url, {
          input: {
            param: {
              method: "Update All",
              number: this.allNumber
            }
          }
        }
      ).then(
        this.allNumber = ""
      )
  }

### 你期待的结果是什么?实际看到的错误信息又是什么?

  1. 循环发起axios请求
  2. 如果循环结束则显示一条结束消息(应该如何实现?)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

清风疏影 2022-09-19 04:07:11

使用ES6的Promise,处理异步请求看看

PostAll: async function() {
  for (var k in this.myListFilter)
    {console.log("myListFilter: " + this.myListFilter[k][0]);
    this.allNumber = this.myListFilter[k][0];
    console.log("allNumber: " + this.allNumber);
    await this.$options.methods.PostAllEach();
  }
},
PostAllEach: function () {
  return new Promise((resolve, reject) => {
      axios.post(url, {
          input: {
            param: {
              method: "Update All",
              number: this.allNumber
            }
          }
        }
      ).then(res => {
        resolve(res)
      }).catch(error => {
        reject(error)
      })
  })
}
山人契 2022-09-19 04:07:11

['/api/xxx','/api/xxx'].reduce((c,n)=>c.then(res=>axios.post(n)),Promise.resolve())

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文