ES6 + 特性介绍之 ——Promise.finally

阅读时长 3 分钟读完

Promise 是 ES6 引入的一种用来处理异步操作的新特性,可以帮助我们更优雅地处理异步操作,并且可以避免回调地狱的问题。Promise 具体实现了状态机的概念,它有三种状态:pendingfulfilledrejected

在 Promise 的使用中,经常需要在操作完成后执行一些代码,无论是正常完成还是出错。而在 ES6 中,我们可以使用 Promise.finally() 这个新特性来实现。

Promise.finally() 是什么?

Promise.finally() 是一个新的实例方法,可以在 Promise 执行完之后执行回调函数,无论是成功还是失败。它可以用来执行一些收尾工作,比如关闭文件、断开数据库连接等。

Promise.finally() 的语法和用法

Promise.finally()Promise.then() 类似,都是返回一个新的 Promise 对象。但与 Promise.then() 不同的是,Promise.finally() 不管 Promise 对象的状态如何都会执行回调函数。

例如,在 Promise 执行完毕后,我们需要执行清理任务。无论 Promise 是否成功或失败,我们都需要保证这个清理任务执行。这时,就可以使用 Promise.finally()

Promise.finally() 示例代码

下面是一个 Promise.finally() 的使用示例:

在以上示例中,fetch() 函数返回一个 Promise 对象,我们通过 .then() 方法获取到响应数据,并在控制台输出。如果出错,我们会捕获到异常并输出错误信息。而使用 Promise.finally() 则可以保证请求结束之后都会执行结束操作,无论正常执行还是异常执行。

总结

Promise.finally() 是 ES6 新增的一个实例方法,用于在 Promise 结束时执行回调函数。它可以帮助我们更好地处理异步操作,避免回调地狱的问题。在使用中要注意,finally() 返回值不会影响 Promise 链的状态,即不会修改前面 then()catch() 的返回结果。

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

纠错
反馈