ES9 中 Promise 上的 finally 方法详解

在 ES9 中,Promise 对象新增了一个 finally 方法,该方法可以在 Promise 执行完毕后,无论是 resolve 还是 reject,都会执行一段代码。本文将详细介绍 finally 方法的用法及其指导意义。

finally 方法的用法

finally 方法的用法非常简单,只需要在 Promise 对象后面调用 finally 方法,并传入一个回调函数即可。该回调函数会在 Promise 执行完毕后执行,无论是 resolve 还是 reject。示例代码如下:

在上面的代码中,finally 方法的回调函数会在 Promise 执行完毕后执行。

finally 方法的指导意义

finally 方法的出现,主要是为了解决 Promise 执行完毕后需要执行一些清理操作的问题。在 Promise 中,我们经常需要执行一些异步操作,比如发送网络请求或者读取本地文件等等。这些操作完成后,我们可能需要执行一些清理操作,比如关闭网络连接或者释放文件句柄等等。在 Promise 中,我们通常是在 then 或者 catch 方法中执行这些操作。但是,如果 Promise 执行完毕后无论是 resolve 还是 reject,我们都需要执行一些清理操作,那么就需要在两个方法中都写一遍清理操作的代码,这样会导致代码的重复,不利于维护。而使用 finally 方法,我们就可以将这些清理操作放在 finally 方法中,避免了代码的重复,提高了代码的可维护性。

另外,finally 方法还可以用于统计 Promise 执行的时间,比如:

在上面的代码中,finally 方法的回调函数会在 Promise 执行完毕后执行,并统计 Promise 的执行时间。

总结

ES9 中新增的 Promise 上的 finally 方法,可以在 Promise 执行完毕后,无论是 resolve 还是 reject,都会执行一段代码。finally 方法的出现,主要是为了解决 Promise 执行完毕后需要执行一些清理操作的问题。使用 finally 方法,可以将这些清理操作放在 finally 方法中,避免了代码的重复,提高了代码的可维护性。另外,finally 方法还可以用于统计 Promise 执行的时间等等。

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


纠错
反馈