关于Promise的记录和理解

本文深入探讨了JavaScript中Promise的概念及其在异步编程中的应用。Promise作为一种管理异步操作的工具,通过分离执行代码和结果代码,有效解决了回调地狱的问题。文章详细介绍了Promise的三种状态:pending、fulfilled和rejected,以及then和catch方法的使用,帮助读者理解如何在实际项目中运用Promise进行高效编程。

在JavaScript中,所有的代码都是单线程执行的,这就导致了其所有的网络请求,IO操作,浏览器时间等都是异步非阻塞的模式执行的,这就使得代码的执行顺序可能会超出我们的掌控。

尤其是当多个异步操作待执行,我们需要控制它的顺序的时候。这时一般的解决方法是回调,Generator,Promise或者await/async等,这里我主要记录Promise。

Promise本质上是一个绑定了回调的对象,把执行代码和结果代码清晰的分离了。

一个Promise对象大致有三个状态 :

  • pending: 初始状态,既不是成功,也不是失败状态。
  • fulfilled: 操作成功完成。
  • rejected: 操作失败。

then函数其实有两个回调函数successCallback和failureCallback。前者是成功时的回调,后者是失败时的回调,一般情况下我们只用了第一个successCallback回调,失败状态靠catch来捕捉,其实本质上catch(failureCallback) 是 then(null, failureCallback)的缩写,那么可以知道,这两者在大部分情况下都相等,但在比如当successCallback中抛出了错误,此时第二个回调failureCallback是捕捉不到的,而catch可以。

在一个catch(即失败操作)触发后,并不影响后续的链式操作。

后续未完......

转载于:https://www.cnblogs.com/JJCHEHEDA/p/9715952.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值