js 在循环中发送axios异步请求 如何有序执行

先说说需求,有国家 城市 地点三个数据

三者是级联关系

删除国家必须删除国家关联的城市

在勾选了表格的多选框以后,点击删除按钮

首先获取所有国家的数据

然后循环发送axios请求,看返回的数据是否为空

不为空则放到一个数组里面(dataList)

最后判断dataList的长度

如果是空 继续删除逻辑

如果不是空则 alert && return

因为是异步请求 并且在循环里面

所以数据一直有问题

请问这里该如何写呢?

代码大致如下:

var dataList=[]
willDeletedData.forEach(item=>{
let cd =item.countryCode
let cnc=item.countryNameCn

this.$axios.post(...).then((res)=>{
if(res.data.length>0){
dataList.push(cnc)}
      })

})

....

if(dataList.length>0){
//终止请求 并返回 错误信息}

.......

进行删除逻辑

阅读 4.2k
2 个回答

使用同步async/await或者promise.all()

但是你这个问题不应该从前端解决,大量重复http没必要

你前端把需要删除的城市编码或需要删除的顶级城市编码传给后台,后台做业务处理循环删除或者批量删除

这代码写出去,你们的服务器承受的了吗..

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题