npm 包 redux-sync-promise 使用教程

redux-sync-promise 是一个能够在 Redux 应用中帮助我们管理异步 action 的 npm 包。它提供了一种简单的方式,使得我们可以在 action 中返回一个 Promise,然后等待该 Promise 成功后再更新 state。本文主要介绍 redux-sync-promise 的基本使用方法及其实现原理。

安装

redux-sync-promise 可以通过 npm 安装:

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

或者通过 yarn 安装:

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

基本使用

首先,在 Redux 的 createStore 中引入 redux-sync-promise:

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

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

然后,在生成 action 的函数中返回一个 Promise,当该 Promise 完成时,我们使用 redux-sync-promise 的标准 action 来保存结果:

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

上述代码中,我们使用 async/await 来请求数据,等待结果后,我们将结果封装在一个 Promise 中,并用该 Promise 对象创建一个标准 action 返回。这个 action 对象中的 promise 属性是 redux-sync-promise 定义的一个关键字,用于指定 action 执行完后需要执行的 Promise 对象。

最后,我们需要在 reducer 中根据这个 action 更新我们的 state:

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

上述代码中,我们将 action.promise 作为数据存储到 state 中。由于 action 已经由 redux-sync-promise 处理,action.promise 返回的实际上是完成数据的 Promise 对象。

实现原理

redux-sync-promise 的本质是一个 middleware,所以它被放在 Redux createStore 函数中的 applyMiddleware 方法中。通过这个 middleware,我们可以使用 action.promise 这个关键字来指定 action 后需要执行的 Promise 对象。

当我们 dispatch 一个 action 时,redux-sync-promise 会判断该 action 中是否包含关键字 promise。如果包含,它会等待该 Promise 对象执行完成,然后再将结果保存到 state 中。

同时,redux-sync-promise 会创建一个新的代理 action,将原始的 action 中的 promise 属性移除。这个代理 action 的类型形式为 ${ACTION_TYPE}_COMPLETED,并将其返回给 reducer 进行处理。在 reducer 中,我们可以通过解析 action 类型后的后缀,判断当前 redux-sync-promise 是否返回了一个代理 action,然后再将 action.promise 中的结果存储到 state 中。

总结

redux-sync-promise 是一个非常有用且易于使用的 npm 包,它能够让我们更好地管理 Redux 中的异步 action。本文介绍了 redux-sync-promise 的基本使用方法及其实现原理,希望对大家有所帮助。附上完整示例代码:

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

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

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

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

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


猜你喜欢

  • npm 包 sql-format-utils 使用教程

    前言 在进行前端开发时,Web 应用程序的后端一般会使用 SQL 数据库来存储数据。在使用 SQL 语句操作数据库时,有必要对 SQL 进行格式化以提高代码的可读性和可维护性。

    4 年前
  • npm 包 spotify-lib 使用教程

    简介 spotify-lib 是一个用于访问和操作 Spotify API 的 JavaScript 库。通过调用其提供的方法,可以轻松地与 Spotify 的歌曲、艺术家、专辑等资源进行交互和操作,...

    4 年前
  • npm 包 spotify-locally 使用教程

    近年来,音乐已然成为我们日常生活不可或缺的一部分。在前端领域,很多公司或项目需要集成音乐播放器。本文将介绍一个名为spotify-locally的 npm 包,并探讨如何使用该包在前端应用中集成 Sp...

    4 年前
  • npm 包 split-symbol-object 使用教程

    简介 split-symbol-object 是一个方便实用的 JavaScript 模块,它可以将一个符号分隔符分割的字符串转换为一个 JavaScript 对象,从而将数据以更直观的形式展示出来。

    4 年前
  • npm 包 split-text-canvas 使用教程

    在前端开发中,我们常常需要使用文字动画来增强页面交互性和视觉效果。而 split-text-canvas 就是一款 npm 包,大大简化了文字动画实现的难度。下面我们就来了解一下这个 npm 包的使用...

    4 年前
  • npm 包 spfx-office-ui-fabric-people-picker 使用教程

    在前端开发中,我们需要使用许多库和工具来简化我们的开发流程,提高我们的效率。其中,npm 包是非常常用的一种工具,它为我们提供了许多前端代码的依赖包和工具包,方便我们快速开发各种应用程序。

    4 年前
  • npm 包 split-text 使用教程

    什么是 split-text? split-text 是一个 npm 包,它提供了一种简便的方式来将一段文本划分成能够独立处理的单词或者字符,方便日后进行样式、动画或者其他一些操作。

    4 年前
  • NPM 包 Spotify-Playlist-2-Slack 使用教程

    前言 在日常的前端开发中,我们不可避免的会用到各种各样的第三方库和工具来辅助我们完成一些功能。其中,NPM 是 Node.js 的包管理器,它拥有丰富的开源工具和库,可以方便我们的快速开发,尤其是在构...

    4 年前
  • npm 包 split-torrent-release 使用教程

    在前端开发中,我们经常会使用各种第三方库和工具来简化我们的工作流程。其中,npm 是一个非常强大的包管理工具,可以帮助我们管理依赖、安装和升级各种库和工具。 今天,我将向大家介绍一个非常有用的 npm...

    4 年前
  • npm 包 split-tweet 使用教程

    在前端开发中,我们经常需要对一些长文本进行分割,比如处理 Twitter 上的消息。split-tweet 是一个可以帮助我们实现这个目标的 npm 包。本篇文章将详细介绍 split-tweet 的...

    4 年前
  • NPM 包 split-tracklist 使用教程

    在日常的前端开发中,我们经常会遇到需要对音乐播放列表进行操作的需求。而在某些情况下,我们需要对该音乐播放列表中的每一项进行拆分或者格式化等操作。在这种情况下,一个小巧且可重用的 npm 包split-...

    4 年前
  • npm 包 sql-helpers 使用教程

    简介 sql-helpers 是一个 Node.js NPM 包,它提供了一系列便捷的 SQL 查询构造工具,可以帮助开发者快速构建、执行和调试 SQL 查询语句。

    4 年前
  • npm 包 sql-generator 使用教程

    随着前端技术的快速进步,前端开发不再仅仅局限于页面展示功能,越来越多的前端开发涉及到数据交互、业务逻辑处理等领域。而 SQL 语句是前后端数据交互必不可少的一部分,因此,本文将介绍一个npm包 -- ...

    4 年前
  • npm 包 split-words 使用教程

    在前端开发中,有时我们需要将字符串按单词切分并进行相应的处理。这时候,一个非常方便实用的工具就是 npm 包 split-words。 split-words 是一个能够将字符串按单词切分的 npm ...

    4 年前
  • npm 包 sql-from-mongo 使用教程

    在使用 Node.js 开发 web 应用时,经常需要和数据库打交道。mongodb 是一种非常受欢迎的 NoSQL 数据库,在对 mongodb 进行查询时,我们通常使用 mongo shell 或...

    4 年前
  • npm 包 sql-gen 使用教程

    前言 在前端开发中,我们经常需要操作数据库。为了方便我们的操作,可以使用 npm 包 sql-gen。sql-gen 是一个可以快速生成 SQL 语句的 npm 包,支持多种数据库类型(MySQL、P...

    4 年前
  • npm 包 sql-generate 使用教程

    什么是 sql-generate? sql-generate 是一个可以生成 SQL 查询语句的工具库,它可以帮助前端工程师快速生成查询语句,减少手写 SQL 语句的时间和错误率。

    4 年前
  • npm 包 spotify-middleware-webapi 使用教程

    前言 随着现代化 web 应用程序的流行,现代应用程序中也必然不可避免地使用第三方 API 或服务。在前端应用程序中使用 Spotify Web API 开发者工具包可以很好地满足这一需求,而我们今天...

    4 年前
  • npm 包 spotify-port-scanner-node 使用教程

    前言 在前端开发中,有很多需要使用网络相关的技术和工具,比如网络请求和端口扫描等。其中,端口扫描是一个非常重要的工具,可以帮助我们分析网络状态和找出可能的安全漏洞等。

    4 年前
  • NPM 包 Spotify-preview-widget 使用教程

    在前端开发中,我们经常需要使用各种第三方库来完成一些特定的功能。而 NPM 作为 JavaScript 的包管理工具,为我们提供了许多优秀的第三方库。其中,spotify-preview-widget...

    4 年前

相关推荐

    暂无文章