在 ES9 中,新增了 Promise.prototype.finally() 方法,该方法会在 promise 被 resolved 或 rejected 后,无论是否有错误,都会执行一段指定的代码块。该方法的用法和场景都非常实用,接下来我们将详细分析一下该方法的使用场景。
什么是 Promise.prototype.finally() 方法?
Promise.prototype.finally() 方法返回一个新的 promise,该 promise 会在当前 promise 被 resolved 或 rejected 后执行一段指定的代码块,无论是否有错误。该方法不会对当前 promise 的值进行任何修改,而是返回一个新的 promise。
Promise.prototype.finally() 方法的使用场景
1. 代码重构
在代码重构的过程中,我们常常需要在异步请求的后面执行一些指定的代码,例如关闭 loading 状态,或者恢复一些 UI 界面等等。此时,我们可以使用 Promise.prototype.finally() 方法,在 promise 被 resolved 或 rejected 后,执行这些指定的代码。
例如:
-- -------------------- ---- ------- -------- -------- -- - ----------- -- -- -- ------- -- ------ ---------- -------------- -- - -- ------ -- ------------ -- - -- ---- -- ----------- -- - ------------- -- -- ------- -- -- -
2. 资源清理
在一些特殊情况下,我们可能需要对某些资源进行清理操作。例如,当我们使用 WebSocket 连接时,需要在连接关闭后,手动清理一些资源。此时,我们可以使用 Promise.prototype.finally() 方法,在 promise 被 resolved 或 rejected 后,执行资源清理的操作。
例如:
-- -------------------- ---- ------- ----- -- - ----------------- --------- - ----- -- - -- -- --------- --------- - ------------ - ------- -- - -- -- --------- ----- - ---------- - ----- -- - -- -- --------- ------- - -------- -------------- -- - -- -------------- --- --------------- - ---------- - - --------------------------------------- ----- -- - -- ---------- --------- ---------- ---------------------- ---------------- -- -------- ----------- -- - ----- ------- - ------------------ ------ --- ----------------- ------- -- - ---------------- ------------ - ----- -- - ------------------- - ---------- - ----- -- - ------------------- - ------------- -- - ---------------- -- - ------- - -------- - -------- ---------- -- -
Promise.prototype.finally() 方法总结
在实际开发中,Promise.prototype.finally() 方法的使用场景非常的广泛,例如在代码重构、资源清理等方面都非常的实用。通过合理的使用该方法,我们可以使我们的代码更加的健壮和稳定。希望本文的分析和示例代码能够对你有所启发和指导,让你的前端开发工作更加的高效和出色。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/654312727d4982a6ebcbace9