Promise.prototype.finally():ES8 新 API

什么是 Promise

Promise 是一种 JavaScript 对象,用于异步编程。它可以让我们在异步操作完成后执行回调函数,而不需要嵌套回调函数,从而避免回调地狱。

Promise 有三种状态:pending(进行中)、fulfilled(已成功)和 rejected(已失败)。当 Promise 对象处于 pending 状态时,可以通过 resolve 和 reject 方法将其转换为 fulfilled 或 rejected 状态。

Promise.prototype.finally()

Promise.prototype.finally() 是 ES8(ECMAScript 2017)中新增的 API,用于在 Promise 状态变为 fulfilled 或 rejected 时,执行一个回调函数,无论 Promise 的状态如何,都会执行该回调函数。

finally() 方法返回一个新的 Promise 对象,该对象的状态和原 Promise 对象的状态相同。

finally() 方法的语法

finally() 方法的语法如下:

其中,promise 是一个 Promise 对象,onFinally 是一个回调函数,表示 Promise 状态变为 fulfilled 或 rejected 时,要执行的操作。

finally() 方法的用法

finally() 方法的用法如下:

在上面的代码中,我们首先创建一个 Promise 对象,然后使用 then() 方法链式调用两个回调函数。第一个回调函数输出 Promise 对象的值,第二个回调函数使用 finally() 方法,在 Promise 对象状态变为 fulfilled 或 rejected 时,输出 finally。最后,我们再次使用 then() 方法输出 Promise 对象的值加 1。

finally() 方法的指导意义

finally() 方法的指导意义在于,无论 Promise 对象的状态如何,我们都可以在其状态变化时执行一些操作,比如释放资源、清理代码等等。

在实际开发中,我们常常需要进行一些清理工作,比如关闭数据库连接、释放内存等等。使用 finally() 方法,我们可以在 Promise 对象状态变化时,统一进行这些清理工作,避免代码重复,提高代码的可读性和可维护性。

总结

Promise.prototype.finally() 是 ES8 中新增的 API,用于在 Promise 对象状态变为 fulfilled 或 rejected 时,执行一个回调函数。该方法返回一个新的 Promise 对象,该对象的状态和原 Promise 对象的状态相同。

finally() 方法的指导意义在于,无论 Promise 对象的状态如何,我们都可以在其状态变化时执行一些操作,比如释放资源、清理代码等等。在实际开发中,使用 finally() 方法可以提高代码的可读性和可维护性。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65713c7ad2f5e1655d9ee155


纠错
反馈