关于promise的finally和always

Promise 对象的回调链,不管以then方法或catch方法结尾,要是最后一个方法抛出错误,都有可能无法捕捉到(因为 Promise 内部的错误不会冒泡到全局)。

“因此,我们可以提供一个finally方法,总是处于回调链的尾端,保证抛出任何可能出现的错误。”

 如:

asyncFunc()
.then(f1)
.catch(r1)
.then(f2)
.done()

always(finally)           表示不管 Promise 对象最后状态如何,都会执行的操作

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: promise的then方法用于处理promise对象的成功状态,它接收一个回调函数作为参数,当promise对象成功时,then方法会调用该回调函数。 promise的catch方法用于处理promise对象的失败状态,它接收一个回调函数作为参数,当promise对象失败时,catch方法会调用该回调函数。 promisefinally方法用于在promise对象无论成功或失败都会执行的操作,它接收一个回调函数作为参数,当promise对象无论成功或失败时,finally方法都会调用该回调函数。 ### 回答2: promise对象是用于处理异步操作结果的,它有一个then方法和一个catch方法,还有一个可选的finally方法。 首先,then方法用于处理promise对象的成功状态。当promise对象成功解决时,then方法会被调用,我们可以在then方法中指定一个回调函数来处理成功的结果。这个回调函数接收promise对象成功时的解决值作为参数,并返回一个新的promise对象。通过链式调用多个then方法,我们可以实现多个异步操作的顺序执行。 其次,catch方法用于处理promise对象的失败状态。当promise对象被拒绝时,即出现错误或异常,catch方法会被调用。我们可以在catch方法中指定一个回调函数来处理失败的原因,并返回一个新的promise对象。与then方法类似,catch方法也可以通过链式调用多个catch方法,以处理不同的失败情况。 最后,finally方法可选的。它会在promise对象无论是成功还是失败后都被调用。无论是在then或catch方法中返回的promise对象是解决还是拒绝,finally方法都会在最后被调用。我们可以在finally方法中执行一些清理操作,比如关闭资源或释放内存。 总结来说,then方法用于处理promise对象的解决状态,catch方法用于处理promise对象的拒绝状态,finally方法可选的用于在最后执行一些清理操作。通过这三个方法的灵活组合使用,我们可以更好地管理和处理异步操作的结果。 ### 回答3: promise的then方法和catch方法是Promise对象上的方法,用于处理异步操作的结果或捕获异常。 then方法可以接受两个参数——onFulfilled(成功时的回调函数)和onRejected(失败时的回调函数)。当一个Promise对象的状态变为fulfilled(成功)时,then方法会执行onFulfilled回调函数;当一个Promise对象的状态变为rejected(失败)时,then方法会执行onRejected回调函数。其中,onFulfilled和onRejected都是可选参数,可以根据实际需求只传入其中一个。 catch方法用于捕获Promise对象内部抛出的异常。它是then方法的语法糖,相当于只传递onRejected回调函数的then方法。当一个Promise对象的状态变为rejected(失败)时,catch方法会执行传入的回调函数,用于处理异常情况。 finally方法是Promise对象的另一个方法,它接受一个回调函数作为参数。不管Promise对象的状态是fulfilled(成功)还是rejected(失败),finally方法都会执行传入的回调函数。该回调函数无论如何都会被执行,用于处理一些需要在Promise结束时执行的逻辑,比如清理工作。 总结来说,then方法用于处理Promise对象的成功和失败状态,catch方法用于捕获异常,finally方法用于执行一些无论Promise对象状态如何都需要执行的操作。这三个方法的链式调用可以有效地处理异步操作的结果,并进行必要的处理和清理工作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值