redux saga生成器/ sagas上的变量分配

问题描述

让我们考虑以下传奇故事:

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,那么它将获得您手动插入的内容。关于我可以手动遍历saga的唯一原因是编写单元测试,因此您不必担心此问题。关于您是否正在使用设计的redux saga。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...