当前位置: 首页 > news >正文

循环实现异步变同步的问题

一、背景

在开发中遇到在循环中调用异步接口的问题,导致页面渲染完成时,没有展示接口返回后拼接的数组数据。

二、问题

在代码中使用了map进行循环,导致调用接口的时候处于异步。
this.form.list.map(async el=>{el.fileList = [];if(el.picture !== ""){const arr = el.picture.split(',');console.log(arr,"arr")arr.map(async it => {let res = await this.transferImage(it); // 异步请求let obj ={url: res,pathUrl: it};await el.fileList.push(obj);})}this.items.push(el);})

三、解决方案

经过断电调试时,发现数组里面的最后一个数据是遍历第一个数据接口返回的内容,然后搜索map是否支持异步变同步,发现map是不支持的。通过 for..of 去遍历数组,通过async await 把异步变同步,解决不显示内容的bug
// 方法上有 async 
for await (let el of this.form.list) {el.fileList = [];if(el.picture !== ""){const arr = el.picture.split(',');console.log(arr,"arr")for await (const it of arr) {let res = await this.transferImage(it);let obj ={url: res,pathUrl: it};await el.fileList.push(obj);}}this.items.push(el);}

四、参考链接

不同循环方式是否支持异步变同步可以参考一下链接:
https://blog.csdn.net/weixin_42756432/article/details/103880033
http://www.lryc.cn/news/415473.html

相关文章:

  • 测试GPT4o分析巴黎奥运会奖牌数据
  • TF卡(SD NAND)参考设计和使用提示
  • 电源芯片负载调整率测试方法、原理以及自动化测试的优势-纳米软件
  • C++威力强大的助手 --- const
  • 测试环境搭建整套大数据系统(十八:ubuntu镜像源进行更新)
  • 第128天:内网安全-横向移动IPCATSC 命令Impacket 套件CS 插件全自动
  • 记录一次学习过程(msf、cs的使用、横向渗透等等)
  • C#中DataTable新增列、删除列、更改列名、交换列位置
  • C#编写多导联扫描式的波形图Demo
  • QT网络编程
  • Django ASGI服务
  • Servlet(2)
  • 电竞玩家的云端盛宴!四大云电脑平台:ToDesk、顺网云、青椒云、极云普惠云实测大比拼
  • 基础复习(反射、注解、动态代理)
  • OGG同步目标端中文乱码处理
  • 使用WPF调用Python进行图像灰度处理
  • (二)测试工具
  • springboot 博客交流平台-计算机毕业设计源码56406
  • 从0开始搭建vue + flask 旅游景点数据分析系统( 八):美化前端可视化图形
  • 【前端面试】七、算法-迭代器和生成器
  • vs+qt一些问题
  • 基于K8S配置Jenkins主从节点实例
  • 萱仔环境记录——git的安装流程
  • 品味食家巷蛋奶酪饼,感受西北美食魅力
  • 常用的图像增强操作
  • 探索TinyDB的轻量级魅力:Python中的微型数据库
  • 模型优化学习笔记—Adam算法
  • 车辆出险报告(h5)-车辆出险记录接口-车辆相关接口
  • C基础项目(学生成绩管理系统)
  • C# 设计模式之原型模式