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

一,场景

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

二,回调的实现

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

三,实际的解决

使用promise

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

在这里插入图片描述

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

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

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

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

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_42349568/article/details/114373346