ES7 中 Promise 的新方法 finally()

阅读时长 3 分钟读完

引言

在前端开发中,Promise 是一种非常常见的解决异步问题的便捷方式。它是一种异步编程模型,可以避免使用回调函数在大量嵌套中的代码可读性。

ES6 中,Promise 可以通过 then()、catch()两个方法对执行后的结果进行处理。但是在实际使用中,出现需要在 Promise 结束时,无论成功或失败,都需要执行某些操作的需求。这时,就需要使用 ES7 中新增的 finally()方法。

什么是 finally()

finally()方法是 Promise 中新出现的一个方法,它与 then()、catch()方法类似,但是 finally()方法不管 Promise 是成功还是失败,都最终执行一次,以便你可以在 Promise 执行之后的清理工作。

finally()方法返回一个 Promise,是一个 then()方法的别名。

使用技巧

在使用 finally()方法时,无论前面的 Promise 成功还是失败,finally()方法中的代码只会在 Promise 执行完毕后执行一次。这种方法通常使用于清理工作,例如关闭文件或者网络连接。

除此之外,finally()方法与 then()方法一样可以返回 Promise,因此我们也可以对 then()方法和 catch()方法进行链式调用。

代码示例

下面是一个使用 finally()方法的代码示例:

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

在这个例子中,我们使用 fetch()方法发送一个 GET 请求,如果成功响应了,我们再获取它的 Blob 数据。如果出现了错误,我们就使用 catch()方法记录错误,最后在执行 finally()方法。

结论

在前端开发中,Promise 是非常常见的解决异步问题的方式。在 ES7 中,Promise 新增了 finally()方法,可以在 Promise 执行结束时执行一些清理工作。本文重点介绍了 finally()方法的用法,包括它的用途和使用技巧,并提供了相关代码示例。

希望这篇文章对你学习和使用 ES7 中的 Promise 完成前端开发中的异步操作有所帮助!

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

纠错
反馈