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

在调用接口上map与forEach的区别

在场景:一个表格数据需要上传,每行表格需要上传图片->这就需要在提交时对数据也就是数组进行处理(先将每个元素图片上传拿到图片id

这种情况我刚开始就用的map处理,然后问题来了,提交的接口调用了,但是上传图片的接口没调用,用了async await也没用

let shopContactList = editForm.value.shopContacts.map(async (item: any) => {let middle: anyif (item.fileList.length && !item.wechatCodeImageID) {middle = await uploadImage(item.fileList[0])}return {name: item.name,phone: item.phone,wechatCodeImageID: middle,}})

->然后我就用了forEach去处理

 let shopContactList: any = []editForm.value.shopContacts.forEach(async (item: any) => {let middle: anyif (item.fileList.length && !item.wechatCodeImageID) {middle = await uploadImage(item.fileList[0])}shopContactList.push({name: item.name,phone: item.phone,wechatCodeImageID: middle,})})

虽然上传图片接口调用了,提交的数据打印出来也有,but->提交接口传递的数据没用,这就很无语,原因:uploadImage 函数是异步的,可能会导致在 formEl.validate 的回调函数执行之前,shopContactList 还没有被填充。所以->修改为(使用 Promise.all 来等待所有异步操作完成,然后再执行 formEl.validate):

    let shopContactList: any = []await Promise.all(editForm.value.shopContacts.map(async (item: any) => {let middle: anyif (item.fileList.length && !item.wechatCodeImageID) {middle = await uploadImage(item.fileList[0])}shopContactList.push({name: item.name,phone: item.phone,wechatCodeImageID: middle,})}))

,这里又为啥不用forEach呢,因为 forEach 方法不会等待异步操作,就报这个错误:undefined是不可迭代的

http://www.lryc.cn/news/370315.html

相关文章:

  • 最短路:spfa算法
  • 算法笔记 图论和优先级队列的笔记
  • 6.每日LeetCode-数组类,找到所有数组中消失的数字
  • 【Three.js】知识梳理十:Three.js纹理贴图
  • mysql order by后跟case when
  • 数字孪生赋能的智慧园区物联网云平台建设方案(97页PPT)
  • TikTok小店运营策略
  • Docker面试整理-如何查看和管理Docker容器的日志?
  • Java从放弃到继续放弃
  • 上传文件生成聊天机器人,实现客服、办公自动化智能体 | Chatopera
  • SD3303A 大功率高亮度LED驱动芯片IC
  • 站易WordPress
  • windows下JDK1.8安装
  • 怎么修改Visual Studio Code中现在github账号
  • 戴尔R720服务器(3)组RAID
  • eNSP学习——配置高级的访问控制列表
  • oracle的bitmap索引是什么
  • 「前端+鸿蒙」鸿蒙应用开发-TS接口-特殊用途
  • Centos7系统禁用Nouveau内核驱动程序【笔记】
  • Vue 面试通杀秘籍
  • 聚焦新版综合编程能力面试考查汇总
  • [工具探索]英寸vs毫米下常见尺寸排版
  • Mimio安装
  • RawChat:优化AI对话体验,全面兼容GPT功能平台
  • 一文详解PaaS平台:机遇、挑战与新变革
  • Go每日一库之rotatelogs
  • 我的网络安全之路——一场诗意的邂逅
  • Android 中USB-HID协议实现
  • 学习AI 机器学习,深度学习需要用到的python库
  • 计算机网络 期末复习(谢希仁版本)第8章