【问题标题】:variable assignment on redux saga generators/sagasredux saga 生成器/sagas 上的变量赋值
【发布时间】:2020-09-10 02:21:31
【问题描述】:

让我们想想下面的传奇:

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

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

我假设 redux-saga 足够聪明,可以通过调用 .next() 方法来管理 saga,并得到最后一个 promise 的结果。

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

【问题讨论】:

    标签: typescript generator redux-saga


    【解决方案1】:

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

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

    如果您手动单步执行 saga,那么它将获取您手动插入的任何内容。我认为手动迭代 saga 的唯一原因是编写单元测试,所以这不是您需要担心的问题关于你是否按照设计使用 redux saga。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-06
      • 1970-01-01
      • 2017-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多