一,场景


中间的规格编辑接口是独立于这个表单的,所以提交表单的时候,我需要先验证基础表单,合格后再进行规格信息 的验证,然后再发起基础表单的提交,再发起规格信息的提交。

二,回调的实现



handleBeforeSubmit函数内部还有好多异步请求,但是这些异步请求我不要求他们按顺序完成,所以直接这样写就好,所以这里其实是出现了两层回调。
第一层出现在商品的基础表单的验证上。
第二层出现在规格信息的验证上。

三,实际的解决

使用promise

第一步是把请求封装起来,返回promise对象

第二步是用await同步地获取这异步请求之后返回的结果,await 接收promise对象,得到的值是resolve这个promise对象之后的结果。

对于try catch错误的捕获,只有线程已经进入try catch中,并且在这个过程中报错了,才会捕获错误,并且只能捕获第一个抛出的错误,后续的代码不会再执行。

第三步是try catch来写这一系列的异步请求。

第四步是使用promise.all来在这一系列异步请求都结束之后,再跳转到商品首页。

记录开发过程中第一次遇到的回调地狱相关推荐

  1. 记录工作中第一次解决bug的小事

    关于在openwrt中丢配置的问题     前一段时间,就是国庆节前一两天吧,我的导师带我们去实验室,任务就是改正测试部门发来的bug.本来分了我五个问题,但是因为我之前没有经验,所以着重改其中一个b ...

  2. 记录人生中第一次中勒索病毒

    身为一个IT热爱的垃圾佬,前段时间自己捡垃圾组装一台esxi的服务器,主要是用来装服务器搭建靶场自己在家玩的,再虚拟机里面安装了一台win10主要用来做跳板机,在家的内网当然可以打靶场,但是外网环境下 ...

  3. 如何处理嵌套的回调并避免“回调地狱”

    JavaScript is a strange language. Once in a while, you have to deal with a callback that's in anothe ...

  4. mysql开发问题解决_开发过程中mysql常见问题的解决方法

    本篇文章给大家带来的内容是关于开发过程中mysql常见问题的解决方法,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 记录开发过程中遇到mysql相关的问题以及解决方法,长期更新. 远 ...

  5. JavaFX8开发过程中的问题记录

    JAVAFX8开发过程中的问题记录 起源 上Java课的时候没有好好学,到后来自学一段时间才真正算是入门,不过听说Java不适合做桌面程序,所以对Swing这一块根本都没有看,而且也忽略了线程和文件I ...

  6. 如何避免Java中的回调“地狱”

    来自:锅外的大佬 本篇文章将简要介绍进行同步远程调用所涉及的代码类型.然后,我们将演示非阻塞 IO 中的分层如何高效使用资源(尤其是线程),引入了称为回调地狱带来的复杂性以及基于反应流方法如何简化编程 ...

  7. JavaScript 中回调地狱的今生前世

    1. 讲个笑话 JavaScript 是一门编程语言 2. 异步编程 JavaScript 由于某种原因是被设计为单线程的,同时由于 JavaScript 在设计之初是用于浏览器的 GUI 编程,这也 ...

  8. JavaScript中的回调地狱及解决方法

    JavaScript中的回调地狱及解决方法 1.回调地狱 在使用JavaScript时,为了实现某些逻辑经常会写出层层嵌套的回调函数,如果嵌套过多,会极大影响代码可读性和逻辑,这种情况也被成为回调地狱 ...

  9. js中 浅谈回调地狱 Promise之终极改造代码

    Callback helll Promise 异步编程的执行顺序都是不一样的,无法保证代码的顺序: 以下是读取三个文件 const fs=require('fs');fs.readFile('a.tx ...

  10. 【JavaScript】同步与异步-异步与并行-异步运行机制-为什么要异步编程-异步与回调-回调地狱-JavaScript中的异步操作

    文章目录 1. 同步与异步 1.1 同步行为synchronous 1.1.1 特点 1.1.2 例子 1.2 异步行为asynchronous 1.2.1 必要性 1.2.2 特点 1.2.3 例子 ...

最新文章

  1. EXT3与EXT4的主要区别
  2. 分享Kali Linux 2017年第12周镜像文件
  3. python嵌套列表知多少
  4. 【算法】ROI Align 原理
  5. Ubuntu18.04深度学习环境配置(简易方式)
  6. arcgis如何连接Oracle,arcgis直连oracle数据库
  7. 蚂蚁金服招聘-高级数据技术工程师、大数据研发工程师/专家
  8. (10)Redis------必须知道的基础内容
  9. ibm服务器aix系统查看cpu,IBM AIX系统硬件信息查看命令(shell脚本)
  10. 三步共享WIN10的视频文件给电视盒子播放
  11. C/C++的刷题练习之牛客网,一个友好的网站
  12. 如何下载网页上的的FLASH
  13. 《童梦奇缘-梦幻般的羁绊》第七章-流火
  14. 阿里云个人网站备案流程
  15. SpringBoot之SpringData JPA的基本使用
  16. elementui下载到本地
  17. 什么时候需要消息队列
  18. 微信小程序--游戏demo
  19. 3.4.3 Electric Fence电网 USACO(毕克定理) USACO
  20. C++实现TTS文字语音朗读Microsoft Speech SDK

热门文章

  1. linux下创造进程指令,Linux系统创建一个新进程(下)
  2. Windows 安装两个MYSQL实例
  3. android 安装apk 代码,Android 8.0安装apk的实例代码
  4. 主表和附表的关联关系,普通字段就可以实现为什么还要有主键外键?之间有什么关系
  5. ArrayUtils
  6. Bootstrap-1
  7. MyVoix2.0.js 源码分析 WebSpeech与WebAudio篇
  8. Linux 命令收集
  9. c#Struts框架理念和自制Struts框架下 复杂版(2009-06-10)
  10. mybatis批量插入和批量更新