Promise.prototype.finally 的作用是什么?

· 约 3 分钟读完 · 第 94 / 142 章

推荐答案

Promise.prototype.finally 是 ECMAScript 2018 引入的一个方法,它允许你在 Promise 无论成功还是失败后都执行一段代码。这个方法返回一个新的 Promise,并且不会改变原 Promise 的状态。

本题详细解读

1. finally 方法的作用

finally 方法的主要作用是在 Promise 链的末尾添加一个回调函数,无论 Promise 是成功(fulfilled)还是失败(rejected),这个回调函数都会被执行。这使得你可以在 Promise 链的最后执行一些清理操作,比如关闭加载动画、释放资源等。

2. finally 方法的返回值

finally 方法返回一个新的 Promise,这个 Promise 的状态与原 Promise 的状态相同。也就是说,如果原 Promise 成功,finally 返回的 Promise 也会成功;如果原 Promise 失败,finally 返回的 Promise 也会失败。

3. finally 方法的参数

finally 方法接受一个回调函数作为参数,这个回调函数不接受任何参数。这意味着你不能在 finally 中访问 Promise 的结果或错误信息。

4. finally 方法的典型使用场景

finally 方法通常用于执行一些无论 Promise 成功还是失败都需要执行的操作。例如:

  • 关闭加载动画
  • 释放资源
  • 清理临时数据

在这个例子中,无论请求成功还是失败,finally 中的代码都会执行,确保请求完成后进行必要的清理操作。