promise,generator,async/await三者关系的弯弯绕绕

本文探讨了JavaScript中异步处理从回调函数到Promise,再到Promise+Generator形成async/await的演变过程。分析了回调函数的缺点,如不可信度和回调地狱,并介绍了Promise的优势和不足,如不能中途取消。接着,讨论了如何通过Promise.race、抛出异常和Promises/A+标准来尝试解决这些问题。进一步,文章提到了Promise异常处理的局限性和与try...catch的区别。最后,文章指出Generator与Promise结合形成的async/await带来的好处,如同步风格的书写、更好的错误处理和调试体验,并推荐了相关阅读资料。
摘要由CSDN通过智能技术生成

起因:
我们的js的异步是使用回调进行实现,而它有几个缺点

从回调函数->promise->promise+generrator = async/await

回调函数
1缺乏可信度
控制反转,使回调函数给别人使用,当回调函数执行过早,过晚,多次调用等问题时,会出现bug,所以不可信任

2回调嵌套(回调地狱)

promise
后面我们使用promise来进行解决,以then操作的形式,进行链式操作,而不再是回调地狱

promise的缺点
1promise一旦新建就会立即执行,无法中途取消
但是我们思考到了几种方式来中断promise请求
1.1promsie.race方法
1.2promise中抛出异常,被catch方法捕捉
1.3Promises/A+标准:原Promise对象的状态将跟新对象保持一致。利用这一特性,当新对象保持“pending”状态时,原Promise链将会中止执行。

Promise.resolve().then(() => {
   
   
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值