在 JavaScript 中,Promise 是一种非常常用的异步编程方式,它能够帮助我们更好地处理异步操作。Promise 的 then() 方法和 catch() 方法已经被广泛使用,但是在 ES2018 中,Promise 新增了一个 finally() 方法,它可以让我们更好地处理 Promise 的状态和结果。
Promise.prototype.finally() 的作用
Promise.prototype.finally() 方法用于指定不管 Promise 对象最后状态如何,都会执行的操作。它与 Promise.prototype.then() 方法和 Promise.prototype.catch() 方法不同的是,它不管 Promise 对象最后的状态是 fulfilled、rejected 还是 pending,都会执行指定的回调函数。
Promise.prototype.finally() 的实现
Promise.prototype.finally() 方法的实现并不难,我们可以通过 Promise.prototype.then() 方法和 Promise.prototype.catch() 方法的链式调用来实现。具体实现代码如下:
------------------------- - ------------------ - --- - - ----------------- ------ ---------- ----- -- ----------------------------- -- ------- ------ -- ----------------------------- -- - ----- ------ -- -- --
在上面的代码中,我们首先获取了当前 Promise 对象的构造函数,然后在 Promise.prototype.then() 方法中分别处理了 Promise 对象的 fulfilled 和 rejected 状态,并在回调函数中执行了 finally() 方法指定的操作。
Promise.prototype.finally() 的使用
使用 Promise.prototype.finally() 方法非常简单,我们只需要在 Promise 对象的链式调用中添加 finally() 方法即可。下面是一个简单的示例代码:
----------------------------------------------------- -------------- -- - ------------------------ ---------- ------ ---------------- -- ---------- -- - -------------------- ------ -- ------------ -- - ----------------------- ------- -- ----------- -- - ------------------------- ---
在上面的示例代码中,我们使用了 fetch() 方法获取了一个 JSON 数据,并对其进行了解析和处理。在 Promise 对象的链式调用中,我们添加了一个 finally() 方法,用于在 Promise 对象执行结束后输出一条日志信息。
总结
Promise.prototype.finally() 方法是 Promise 对象的一个非常有用的方法,它可以让我们更好地处理 Promise 的状态和结果。在使用 Promise 时,我们应该尽可能地使用 finally() 方法来确保代码的正确性和可读性。在实现 Promise.prototype.finally() 方法时,我们可以通过 Promise.prototype.then() 方法和 Promise.prototype.catch() 方法的链式调用来实现,代码并不难写。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/660153e4d10417a222c8340a