ES9 的 Promise.prototype.finally:在 finally 块中做什么
Promise 是 JavaScript 中处理异步操作的一种方式,它可以避免回调地狱的问题,并且可以更加优雅地处理异步代码。ES9 引入了 Promise.prototype.finally 方法,该方法可以在 Promise 执行结束后,无论是 resolve 还是 reject,都会执行 finally 中的代码块。
Promise.prototype.finally 方法的语法如下:
promise.finally(onFinally)
其中,promise 是一个 Promise 对象,onFinally 是一个函数,它会在 Promise 执行结束后被调用。
在 finally 块中,我们可以做一些清理工作,比如关闭数据库连接、释放资源等。同时,finally 块中的代码也可以用来处理一些不管 Promise 执行是否成功都需要执行的操作。
下面是一个使用 Promise.prototype.finally 的示例代码:
-- -------------------- ---- ------- -------- ----------- - ------ --- ----------------- ------- -- - ------------- -- - ---------------- -- ------ --- - ----------- ------------ -- - ------------------ -- -------------- -- - --------------------- -- ----------- -- - ------------------ ---- ------------ ---
在上面的代码中,我们定义了一个 fetchData 函数,它返回一个 Promise 对象。在 then 中,我们打印出了从 fetchData 函数中获取到的数据,在 catch 中,我们打印出了错误信息。在 finally 中,我们打印出了一个提示信息,表示 fetchData 函数的执行已经结束。
总结
ES9 的 Promise.prototype.finally 方法可以在 Promise 执行结束后,无论是 resolve 还是 reject,都会执行 finally 中的代码块。在 finally 块中,我们可以做一些清理工作或者处理一些不管 Promise 执行是否成功都需要执行的操作。使用 Promise.prototype.finally 可以让我们的代码更加健壮和优雅。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65c3e536add4f0e0ffe50733