基本概念 - 一个常见的抽象概念: Effect

优质
小牛编辑
119浏览
2023-12-01

概括来说,从 Saga 内触发异步操作(Side Effect)总是由 yield 一些声明式的 Effect 来完成的
(你也可以直接 yield Promise,但是这会让测试变得困难,就像我们在第一节中看到的一样)。

一个 Saga 所做的实际上是组合那些所有的 Effect,共同实现所需的控制流。
最简单的是只需把 yield 一个接一个地放置,就可对 yield 过的 Effect 进行排序。你也可以使用熟悉的控制流操作符(if, while, for
来实现更复杂的控制流。

我们已经看到,使用 Effect 诸如 callput,与高阶 API 如 takeEvery 相结合,让我们实现与 redux-thunk 同样的东西,
但又有额外的易于测试的好处。

redux-saga 相比 redux-thunk 还提供了另一种好处。
在「高级」一节,你会遇到一些更强大的 Effect,让你可以表达更复杂的控制流的同时,仍然拥有可测试性的好处。