理解 ECMAScript 2018 新特性:Promise.prototype.finally

什么是 Promise.prototype.finally

Promise.prototype.finally 是 ECMAScript 2018 新增的 Promise 原型对象的方法。它会在一个 Promise 返回其 settle 状态(fulfilled 或 rejected)时被执行。相当于不管 Promise 被 resolve 还是被 reject,finally 中的代码总是会被执行。

新特性的意义和用途

在实践中,我们通常需要在 Promise 的 resolve 或 reject 之后执行一个或多个操作,例如释放资源或将结果写入日志。在之前的版本中,我们往往需要在 Promise 中的 then() 或 catch() 方法中重复编写相同的操作,而这种做法会导致代码重复和可读性的下降。

finally 的引入可以大大简化 Promise 的处理流程,使得代码更加简洁清晰,并且可以保证我们在 Promise 结束后都能执行特定的操作,无需重复代码。

finally 方法的使用

finally 方法在 Promise 原型对象上定义,可以通过 Promise 实例的 prototype 调用。如下所示:

------------------------------------
-------------------------------------

其中,onFinally 是一个在 Promise 结束后被执行的回调函数。无论 Promise 是否成功,finally 都会在 Promise 返回 settled 状态之后被调用。

下面是一个简单的示例,展示如何使用 Promise.prototype.finally 方法:

----- -------- ------------- -
  ----- ------- - ----------------
  -- ----- ------- -------------
  --------------- -- ------------------- - -----
         --------- -- ----------------- - -----
         ----------- -- -------------------- -------------
  ----- --------
-

在上述示例中,我们在 Promise 的 then 和 catch 方法中记录了 Promise 的状态,然后在 finally 方法中打印一条信息。这样我们就可以对 Promise 状态进行记录同时保证代码清晰。

总结

Promise.prototype.finally 是 ECMAScript 2018 中一个很有用的特性,可以在 Promise 结束后执行特定的操作,避免了代码重复,同时代码结构也更加清晰。建议在开发过程中多多使用这个特性,以提高代码编写的效率和可读性。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/647acabb968c7c53b066fb59


猜你喜欢

  • # RESTful API 如何处理进程间通信?

    RESTful API 如何处理进程间通信? 在前端开发中,RESTful API 被广泛使用,而进程间通信也是常见的需求。本文将讨论如何通过 RESTful API 实现进程间通信。

    1 年前
  • Socket.io 的底层技术讲解以及使用方法

    Socket.io是一个使用JavaScript编写的实时网络应用程序库,允许服务器发送实时事件到客户端,同时也允许客户端发送实时事件到服务器。本文将深入探讨Socket.io的底层技术以及使用方法。

    1 年前
  • 使用 Headless CMS 打造开源社区,需要注意哪些事项?

    前言 随着互联网的发展,开源社区越来越受欢迎。许多开发者都希望有一个安全、可靠的平台,在这里分享代码、资源、经验和知识。而一个好的开源社区需要有一个强大的基础设施,包括服务器、数据库、存储等等,这些都...

    1 年前
  • 解决 Tailwind CSS 中的样式重写问题

    Tailwind CSS 是一个流行的 CSS 框架,它通过提供大量的样式类,让开发人员能够快速构建出漂亮的 web 界面。然而,这些样式类可能会导致样式重写问题,影响我们的样式表编写效率和维护性。

    1 年前
  • CSS Grid 如何实现视差效果

    CSS Grid 是一种强大的布局方式,可以让我们轻松地创建复杂的网格布局。除了常见的多列布局外,它还可以用于实现视差效果。视差是指在不同速度移动的物体之间的感知差异。

    1 年前
  • MongoDB 查询优化:如何使用 hint()

    在使用 MongoDB 查询时,可使用 hint() 方法来优化查询性能。本文将介绍 hint() 的使用方法、原理以及优化效果的验证等细节。 hint() 方法概述 hint() 是 MongoDB...

    1 年前
  • CSS Reset 对于伪类的影响及解决方法

    在前端开发中,我们通常需要用到伪类来进行样式的修饰。但是,当我们使用 CSS Reset 的时候,会发现它会对伪类产生一些意想不到的影响。本文将探讨 CSS Reset 对伪类的影响以及解决方法。

    1 年前
  • Kubernetes 中如何使用 RBAC 对资源进行授权管理?

    随着 Kubernetes 的快速发展,越来越多的企业开始将应用程序部署到 Kubernetes 上。但是,Kubernetes 中的资源越来越多,管理起来越来越复杂。

    1 年前
  • Next.js+pm2 搭建 node 的服务端部署

    在今天的 Web 开发中,前端技术日益完善,前端技术可以处理越来越多的事情,例如动态内容、后端接口和数据库交互等。此外,随着 Node.js 的兴起,前端工程师也可以编写服务器端代码,从而拥有更全面的...

    1 年前
  • Web Components 中的国际化实践

    Web Components 提供了一种将自定义 HTML 组件封装起来,以便在应用程序中进行复用的方式。但是,在多语言应用程序中,考虑到各种语言之间的差异,也需要在 Web Components 中...

    1 年前
  • Promise 和 fetch 的使用技巧

    在前端开发中,我们经常需要与后端进行数据交互,获取返回的数据并进行展示。Promise 和 fetch 是现代 JavaScript 中常用的异步编程方式,能够帮助我们更加方便、简洁地处理数据请求,并...

    1 年前
  • Flexbox 如何实现水平居中的技巧

    在前端开发中,实现元素水平居中一直是一个经常遇到的问题。在过去,可能需要使用复杂的计算和定位操作来实现。但现在,借助于 Flexbox 技术,水平居中已经变得非常简单。

    1 年前
  • ESLint 如何避免产生代码重复

    作为前端开发人员,我们都知道代码重复是一件非常危险的事情。重复的代码会令我们的代码变得难以维护和扩展,同时也会让我们浪费大量的时间和精力。ESLint 是一种流行的 JavaScript 代码检查工具...

    1 年前
  • 如何使用 Webpack 和 TypeScript 构建大型项目

    什么是 Webpack 和 TypeScript Webpack 是一个模块打包器,它将多个 JavaScript 文件打包成一个或多个文件,同时支持处理 CSS、图片、字体等非 JavaScript...

    1 年前
  • TypeScript 中的枚举类型详解与使用案例

    什么是枚举类型? 枚举类型是 TypeScript 中的一种类型,用于定义一组有名字的常量。可以将枚举类型看作是一种“自定义的数据类型”。它使得代码更具有可读性和可维护性。

    1 年前
  • 如何在 Node.js 中使用 GraphQL

    GraphQL 是一个由 Facebook 开源的数据查询和操作语言,旨在提供一种更高效、强大、灵活和简单的替代 REST API 的方案。它可以让前端开发者更加方便地获取数据,并且可以同时获得多个数...

    1 年前
  • 如何开发无障碍 APP——IOS 开发者指南

    随着科技进步的推进,人们的生活水平不断提高,各类 APP 已经成为人们日常生活的必备工具。但是,由于残疾人士的存在,这些 APP 往往存在一些无障碍使用的问题。因此,开发无障碍 APP 已经成为了开发...

    1 年前
  • 使用 Flask 与 JavaScript 实现 SSE 即时通讯

    随着互联网的快速发展,即时通讯成为了人们日常交流的必要手段。SSE(Server-Sent Events)是一种实现即时通讯的技术,具有低延迟和高效等特点。本文将介绍如何使用 Flask 和 Java...

    1 年前
  • 前端工程化:基于 Webpack 和 React 组件库的单页应用项目

    前言 在前端开发中,工程化的实践已经成为了必备技能。采用工程化的开发方式,可以提高代码的可维护性和可重用性、加快开发效率,从而使项目在迭代更新时更加便捷和高效。 Webpack 是一个强大的前端构建工...

    1 年前
  • 如何在 Jest 中使用 Chai?

    Jest 是一个流行的前端测试框架,而 Chai 则是一个流行的 JavaScript 断言库。如何在 Jest 中使用 Chai 进行测试呢?本文将详细介绍。 安装 Jest 和 Chai 首先,在...

    1 年前

相关推荐

    暂无文章