npm 包 @redux-saga/symbols 使用教程

阅读时长 6 分钟读完

简介

@redux-saga/symbols 是 redux-saga 项目中的一部分,它提供了一些用于控制 saga generator 的私有 symbol 对象,这些 symbol 对象只能在 saga generator 内部使用。

@redux-saga/symbols 可以帮助用户更好地掌控 saga generator,以及在 generator 之间传递额外的 context 信息。下面我们将详细介绍如何使用它。

安装

使用 npm 或者 yarn 安装即可:

使用

@redux-saga/symbols 包中提供了以下几个 symbol 对象:

  • TASK: 表示用于控制 saga task 的 symbol。
  • MATCH: 表示用于匹配指定任务的 symbol。
  • CANCEL: 表示用于取消任务的 symbol。
  • FLUSH: 表示用于清空 saga buffer 任务的 symbol。

下面介绍一下如何使用这几个 symbol 对象。

使用 TASK symbol

TASK symbol 表示用于控制 saga task 的 symbol,可以获取 task 的详细信息,例如 task ID、状态等等。

下面是一个使用 TASK symbol 获取 task ID 的示例代码:

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

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

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

使用 MATCH symbol

MATCH symbol 表示用于匹配指定任务的 symbol,可以用它匹配指定的任务,找到任务之后进行一些操作。

下面是一个使用 MATCH symbol 匹配指定任务的示例代码:

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

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

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

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

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

使用 CANCEL symbol

CANCEL symbol 表示用于取消任务的 symbol,可以用它取消指定的任务。

下面是一个使用 CANCEL symbol 取消指定任务的示例代码:

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

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

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

使用 FLUSH symbol

FLUSH symbol 表示用于清空 saga buffer 任务的 symbol,可以用它清空指定类型的 buffer。

下面是一个使用 FLUSH symbol 清空指定类型 buffer 的示例代码:

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

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

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

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

总结

@redux-saga/symbols 提供了一些用于控制 saga generator 的 symbol 对象,并能够帮助我们更好地掌控 saga generator,以及在 generator 之间传递额外的 context 信息。学习并掌握这些 symbol 对象可以让我们更加灵活的使用 redux-saga,在处理异步任务时能更好地掌控业务流程。

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

纠错
反馈