ECMAScript 2018 引入 Promise.finally,让 Promise 更加完美

阅读时长 3 分钟读完

ECMAScript 2018 加入了 Promise.finally 方法,使得 Promise 更加完美。在之前的版本中,我们只能使用 then 方法或 catch 方法处理 Promise 的回调函数,但是这两个方法都有一定的限制。then 方法不能捕获错误,而 catch 方法不能执行 finally 的代码。现在,我们可以使用 Promise.finally 方法解决这个问题,它可以在 Promise 完成后无论成功还是失败都执行一些代码。

Promise.finally 的语法

Promise.finally() 方法接收一个回掉函数,这个回掉函数会在 Promise 完成后,无论成功还是失败,都会被执行。

下面是它的语法:

Promise.finally 的学习意义

使用 Promise.finally 可以帮助我们处理一些必须执行的代码,比如清理工作或者一些状态的更新。它也可以让我们更好地区分 Promise 的三种状态:成功、失败和完成。

在以前的版本中,我们需要在 then 和 catch 方法中写很多重复的代码,让代码变得冗长和难以维护。但是现在,我们可以将这些重复的代码移动到 finally 方法中,从而减少代码量,让程序更加清晰和易于维护。

Promise.finally 的示例

下面是一个简单的示例,展示了如何使用 Promise.finally:

-- -------------------- ---- -------
----------------------------------------------
  ------------------------ -
    ------ ----------------
  --
  -------------------- -
    ------------------
  --
  ---------------------- -
    -------------------- -------
  --
  ------------------- -
    ------------------
  ---

在这个示例中,我们使用 fetch 方法来获取一个 Github 用户的信息。如果 fetch 方法成功,我们就将响应转换为 JSON 格式并输出数据。如果失败,我们就捕获错误并输出错误信息。最后,在 Promise 完成后无论成功还是失败,我们都会输出一条完成的消息。

总结

Promise.finally 是 ECMAScript 2018 中的一个新增方法,它使得 Promise 更加完美。它可以帮助我们处理一些必须执行的代码,从而减少代码量,让程序更加清晰和易于维护。在实际开发中,我们可以根据需要使用 Promise.finally 来完善我们的 Promise 代码。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/645ef11b968c7c53b011566b

纠错
反馈