Redux Saga 生成器/SAGA 上的变量赋值



让我们考虑以下传奇:

function* mySaga(){
const x = yield call(getX)
}

事实上,const x的值不是由call(getX())的返回值直接赋值,而是由调用时mySaga.next(whatever)传递的任何值赋值。

我假设 redux-saga 足够聪明,可以以这样一种方式管理传奇,即它调用.next()方法,并产生最后一个承诺的结果。

不过,是吗? 假设x实际上是getX()的结果有多安全?

假设 x 实际上是 getX() 的结果有多安全

如果生成器由 redux saga 运行,那么只要getX返回一些东西(即,它不抛出并且不进入无限循环),redux saga 保证 saga 将以该返回值恢复,从而分配给x

如果您手动逐步完成传奇,那么它将获得您手动插入的任何内容。关于我能想到手动迭代 saga 的唯一原因是编写单元测试,所以如果你按照设计使用 redux saga,这不是你需要担心的问题。

最新更新