npm 包 redux-promise-x 使用教程

简介

redux-promise-x 是一个基于 redux-promise 的增强版,它支持了异步操作的被取消(cancelled)的情况,同时提供较方便的异步 action 组合方式。

redux-promise-x 中的异步操作将会被包装成一个 Promise 实例,同时返回的 action 将会有几个属性:

  • type:action 的类型,理论上来说,是必要的,但有些插件(例如 redux-actions)会自动为我们生成;
  • payload:异步操作成功后的返回结果;
  • error:如果发生了错误,则为 true,同时 payload 将会是错误信息;
  • cancelled:如果发生了操作被取消则为 true。

安装

你可以通过以下命令安装 redux-promise-x 包:

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

使用方法

  1. 在您的 Redux store 中包装 redux-promise-x,和普通的 redux-promise 包装方式一样:
------ - ------------ --------------- - ---- --------
------ ----------------- ---- ------------------

----- ----- - ------------
  --------
  ----------------------------------
--
  1. 派发一个异步 action:
----- -------- - ----- -- --
  ----- ------------
  -------- -
    -------- -------------------------
      -------------- -- ----------------
  -
---

在这个例子中,fetch() 方法将会请求启动一个异步操作,promise: ... 语法表示它是一个 Promise 对象。使用 payload.promise 而不是 payload 来表示其是一个异步操作,与原生的 redux-promise 相同。

  1. 组合异步 action:
----- ---------- - ----- -- --
  ----- --------------
  -------- -
    -------- ------------------------- -------- ----------
      -------------- -- ----------------
      -------- -- ----
  -
---

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

在这个例子中,我们使用 deleteUser 删除用户并返回成功的用户 id。在组操作中,使用 deleteUser 并在操作完成后调用 loadUser,以使修改后的数据同步到 store 中。

  1. 处理异步结果:

redux-promise-x 的成功/失败结果会被包装成一个 action,以便您更容易地处理成功或失败结果。以下是一个完整的例子:

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

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

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

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

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

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

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

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

在此示例中,我们将异步加载列表和删除用户组合在一起。当组件加载时,我们调用 loadUsers 方法,并在操作完成后更新 store 中的用户列表。当我们删除一个用户时,我们调用 deleteUser 方法,并在操作完成后更新 store 中的用户列表和通知用户他已删除。

在 reducer 中,我们在每个异步 action 的每个状态点上派发一个新的 action。示例代码中,我们处理三种状态,即“pending”(处理中)、“fulfilled”(完成)和“rejected”(失败)。

状态点的命名采用方法为:

  • {action.type}_PENDING
  • {action.type}_FULFILLED
  • {action.type}_REJECTED

总结

redux-promise-x 更好地支持了操作的被取消情况,并提供了更好的方式去组合异步 action。结合使用 react-reduxredux-actions 等工具可以快速有效地构建交互型应用程序。

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


猜你喜欢

  • npm包curebot使用教程

    1. 概述 npm是世界上最大的软件库之一,curebot是一款使用npm包管理的前端类工具,可以让你更轻松地管理你的项目,特别是大型项目。在本教程中,我们将介绍npm包curebot的使用方法,包括...

    3 年前
  • npm 包 lin-alg 使用教程

    在前端开发中,常常需要进行一些矩阵计算的操作。此时,就可以借助 npm 包中的 lin-alg 来实现这个功能。本文将介绍如何安装和使用 lin-alg 包。 1. 安装 可以通过 npm 进行安装:...

    3 年前
  • npm 包 react-parts 使用教程

    在前端开发中,使用框架和库能够提高工作效率,其中 React 是一个广泛使用的 JavaScript 库。而在 React 库中,配合使用 npm 包 react-parts 可以更加轻松地开发复杂的...

    3 年前
  • npm 包 spawn-limiter 使用教程

    在 Node.js 开发中,子进程是非常重要的一部分。我们经常使用 spawn() 方法在 Node.js 中启动子进程来执行一些外部的命令行程序。但是在实际使用中,如果同时启动多个子进程,就有可能会...

    3 年前
  • npm 包 json-api-normalize 使用教程

    本文主要介绍 npm 包 json-api-normalize 的使用教程,该包能够将符合 JSON API 规范 的 API 响应数据进行规范化处理,方便前端开发者进行数据处理与渲染。

    3 年前
  • npm 包 @uikit/utils 使用教程

    简介 @uikit/utils 是一个实用的 npm 包,提供了许多常用的前端工具函数和工具类,方便开发者进行前端开发。本文将介绍如何使用 @uikit/utils 这个 npm 包。

    3 年前
  • npm 包 angular-library-bp 使用教程

    简介 angular-library-bp 是一个基于 Angular 框架的开发模板项目,它提供了一个方便、快速的方式来创建 Angular 库。在创建自己的 Angular 库时,使用这个模板将会...

    3 年前
  • npm 包 blockfolio 使用教程

    在前端开发中,我们常常需要利用一些工具软件来进行项目开发和调试。其中,npm 包是一种非常常见的工具,在 Node.js 环境下使用。在这篇文章中,我们将介绍一个非常实用的 npm 包 blockfo...

    3 年前
  • npm 包 i-colors 使用教程

    i-colors 是一个基于 Node.js 和 NPM 的前端开发工具包,可以用于快速生成颜色值。本文将介绍如何使用 i-colors 包来生成颜色值,以及如何在 Web 开发中应用它。

    3 年前
  • npm包ng2-forms使用教程

    介绍 ng2-forms是一个npm包,用于Angular 2+项目中的表单数据处理和验证。它提供了一种简单、可扩展的方式来处理表单数据和验证表单的输入。ng2-forms是一个基于reactive ...

    3 年前
  • npm 包 nodeintelliver 使用教程

    简介 nodeintelliver 是一个用于快速部署 JavaScript 应用程序的 npm 包。它提供了一个简单易用的 CLI 工具,能够在几分钟的时间内将你的应用程序部署到云端。

    3 年前
  • npm 包 create-element-functional 使用教程

    简介 在开发前端应用时,经常需要动态地创建 HTML 元素。一般来说,我们使用原生的 JavaScript 代码来创建元素,不过这样做非常繁琐。而另一种方法是使用一个叫做 create-element...

    3 年前
  • npm包 json-sql-builder 使用教程

    简介 json-sql-builder是一个javascript库,可以方便地将json构建成SQL语句。拥有良好的阅读性和易于维护性,可以快速构建规范的SQL语句。

    3 年前
  • npm 包 vue-alert-loading 使用教程

    什么是 npm 包 vue-alert-loading? npm 包 vue-alert-loading 是一个 Vue 组件,可以帮助开发者在页面中显示一个加载等待的效果。

    3 年前
  • NPM 包 wp-passhash 使用教程

    在 WordPress 中,密码是按照特定的规则生成和储存的,这个规则叫做 passhash。wp-passhash 是一个用于生成和比对 WordPress passhash 的 NPM 包。

    3 年前
  • npm 包 graphiql-azure-functions 使用教程

    前言 随着前端技术的不断发展,我们越来越注重用户体验和数据可视化。而 GraphQL 技术的出现极大地推进了这一进程,成为了前端开发中不可或缺的技术。而在实际的开发中,我们需要一些方便的辅助工具,如 ...

    3 年前
  • npm 包 digit-roll-test 使用教程

    npm 是 Node.js 的包管理器,用于管理和发布 Node.js 模块。digit-roll-test 是一个 Node.js 模块,用于实现数字滚动效果。这篇文章将详细介绍 npm 包 dig...

    3 年前
  • npm 包 stock-charts 使用教程

    介绍 stock-charts 是一款基于 React 组件的股票图表库,它提供了丰富的股票图表类型和功能,可以帮助前端开发者快速构建股票行情展示页面。 安装 在使用 stock-charts 前,需...

    3 年前
  • npm 包 @gergnz/react-webcam 使用教程

    在前端开发中,有时需要使用摄像头来获取用户的照片或视频。借助 npm 包 @gergnz/react-webcam,可以方便地在 React 应用中实现摄像头的使用。

    3 年前
  • npm 包 draft-js-placeholder-plugin 使用教程

    前言 在前端开发中,使用富文本编辑器是必不可少的一部分。Draft.js 是 Facebook 开发的一个富文本编辑器框架,其优点是运行速度快、可扩展性强。在使用 Draft.js 编辑器时,经常会遇...

    3 年前

相关推荐

    暂无文章