redux saga 的变量赋值 generators/sagas
variable assignment on redux saga generators/sagas
让我们想想下面的故事:
function* mySaga(){
const x = yield call(getX)
}
事实上,const x
的值并不是由call(getX())
的return值直接赋值的,而是在mySaga.next(whatever)
打电话。
我假设 redux-saga 足够聪明,可以通过调用 .next()
方法并返回最后一个承诺的结果来管理传奇。
是吗?
假设 x
实际上是 getX()
的结果有多安全?
How safe is it to just assume that x is actually the result of getX()
如果生成器被 redux saga 运行,那么只要 getX
return 有东西(即,它不会抛出也不会进入无限循环)redux saga 保证 saga 将使用该 return 值恢复,因此分配给 x
.
如果您手动单步执行 saga,那么它会得到您手动插入的任何内容。我认为手动迭代 saga 的唯一原因是编写单元测试,所以这不是您需要关心的问题担心您是否按设计使用了 redux saga。
让我们想想下面的故事:
function* mySaga(){
const x = yield call(getX)
}
事实上,const x
的值并不是由call(getX())
的return值直接赋值的,而是在mySaga.next(whatever)
打电话。
我假设 redux-saga 足够聪明,可以通过调用 .next()
方法并返回最后一个承诺的结果来管理传奇。
是吗?
假设 x
实际上是 getX()
的结果有多安全?
How safe is it to just assume that x is actually the result of getX()
如果生成器被 redux saga 运行,那么只要 getX
return 有东西(即,它不会抛出也不会进入无限循环)redux saga 保证 saga 将使用该 return 值恢复,因此分配给 x
.
如果您手动单步执行 saga,那么它会得到您手动插入的任何内容。我认为手动迭代 saga 的唯一原因是编写单元测试,所以这不是您需要关心的问题担心您是否按设计使用了 redux saga。