简介
@redux-saga/symbols
是 redux-saga 项目中的一部分,它提供了一些用于控制 saga generator 的私有 symbol 对象,这些 symbol 对象只能在 saga generator 内部使用。
@redux-saga/symbols
可以帮助用户更好地掌控 saga generator,以及在 generator 之间传递额外的 context 信息。下面我们将详细介绍如何使用它。
安装
使用 npm 或者 yarn 安装即可:
npm install @redux-saga/symbols # 或者 yarn add @redux-saga/symbols
使用
@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