npm 包 redux-wait-actions 使用教程

阅读时长 9 分钟读完

简介

redux-wait-actions 是一个方便的 redux middleware,可以在 redux 的 action 中添加异步等待时间,以便更好地控制 redux 中的异步操作。它支持直接使用 Promise 和 async/await。

本文将介绍如何在前端项目中使用 redux-wait-actions,包括:

  • 安装和引入 redux-wait-actions
  • 在 redux 中配置 middleware
  • 在 action 中使用 redux-wait-actions

其中,我们将以一个使用 React 和 Redux 构建的 todo list 应用为例进行演示。

安装和引入 redux-wait-actions

我们可以使用 npm 快速安装 redux-wait-actions:

然后,在代码中引入 redux-wait-actions:

在 redux 中配置 middleware

为了使用 redux-wait-actions,我们需要在 redux 中配置 middleware。在 todo list 应用的代码中,我们可以这样增加中间件:

在 action 中使用 redux-wait-actions

接下来,我们将演示如何在 action 中使用 redux-wait-actions。假设我们需要在用户点击 “add todo” 按钮时,等待 1 秒后再执行添加操作。我们可以这样修改 addTodo action:

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

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

在上面的代码中,我们添加了两个新的属性:wait 和 async。

  • wait:表示等待的毫秒数。
  • async:一个 async/await 函数,必须返回一个 Promise。在这个例子中,我们等待 1 秒后再执行添加操作。

这样,当用户点击 “add todo” 按钮时,相应的添加操作将被挂起,并在 1 秒后再执行。

示例代码

最后,我们提供完整可运行的代码如下:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

完整代码也可以在下面的 GitHub 仓库中找到:

https://github.com/hanrea/react-redux-todo-list/tree/redux-wait-actions

总结

在本文中,我们学习了如何使用 redux-wait-actions,在 action 中添加等待时间,以便更好地控制 redux 中的异步操作。我们介绍了 redux-wait-actions 的基本概念,安装和引入,以及在 action 中使用的详细步骤。通过学习本文,我们可以更好地理解和使用 redux-wait-actions,从而更好地控制 redux 中的异步操作。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600564ff81e8991b448e199b

纠错
反馈