嵌套的网络请求怎么处理

发布于 2022-09-05 10:42:06 字数 1228 浏览 18 评论 0

从一个网络请求返回的结果筛选符合条件的数组a,再循环a数组发起a.length次网络请求获取返回结果,
这种异步怎么写啊?

            testRequest () {
                let _this = this;
                let params = {
                    PageIndex: 1,
                    PageSize: 100,
                    PatientAgentID: _this.$store.state.mystudent.currentPatientId.ID
                };
                let result = []
                api.requestTestList(params).then(res => {
                    let arr = res.Records.map(ele => ele.ID);
                    for (let i = 0;i < arr.length; i++) {
                        api.requestTestMembers({
                            ExamID: arr[i],
                            PatientAgentID: _this.$store.state.mystudent.currentPatientId.ID,
                            PageIndex: 1,
                            PageSize: 100
                        }).then(res => {
                            let newEle = res.Records.filter(function (ele) {
                                return ele.Status === 1
                            })
                            result.concat(newEle)
                        })
                    }
                    return result
                })
            }

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

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

发布评论

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

评论(3

花之痕靓丽 2022-09-12 10:42:06

不用写,把服务端的同事打一顿就好了~
如果打不过的话
async函数应该是目前最好的异步解决方案。http://es6.ruanyifeng.com/#do...

怀念你的温柔 2022-09-12 10:42:06

大概写出来是这样

api.requestTestList(params).then(res => {
  return res.Records.map(ele => ele.ID);
}).then(arr => {
  const requests = arr.map(examId => {
    return api.requestTestMembers({
      ExamID: examId,
      PatientAgentID: _this.$store.state.mystudent.currentPatientId.ID,
      PageIndex: 1,
      PageSize: 100
    })
  })

  return Promise.all(requests)
}).then(responses => {
  responses.forEach(item => {
    let newEle = item.Records.filter(function (ele) {
      return ele.Status === 1
    })
    result.concat(newEle)
  })

  return result
})

但是你这一次性遍历一个数组发起这么多请求,不会爆掉服务器么?

紧拥背影 2022-09-12 10:42:06

让负责这个接口的同事重新改过

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