异步回调问题

博客探讨了异步回调带来的挑战,包括回调地狱、无法正常检索堆栈信息及难以判断异步完成时机。通过介绍Promise的用法,提出了解决这些问题的一种方案。
摘要由CSDN通过智能技术生成

异步回调出现的问题:
1、异步请求多的话,回调函数一层套一层,不利于后期的维护和理解

更深层次的原因:

2、无法正常检索堆栈的信息:
向服务器发送异步请求后,在服务器返回结果时调用异步函数,没办法使用try…catch捕获错误,因为发送异步请求的函数和回调函数不在同一个栈中,发送异步请求的函数在结束后就已经出栈了,而回调函数是新开了一个栈,所以用try…catch捕获不到错误,只能用return把错误返回出去

3、没办法判断多个异步函数是什么时候完成的,只能在更高级的作用域里面去声明很多变量交给内层的作用域(回调函数)去使用,导致这些变量有可能被其他的函数访问和修改,最终出现错误

代码:

在这里插入图片描述
promise的用法的原理:

一步执行,最简单的代码:
在这里插入图片描述
两步执行:
在这里插入图片描述
对已完成的promise执行then

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值