从内部调用 saga

Calling saga from within

我正在尝试从内部调用 Saga(请参见下面的示例),但是当我发送 use put 时,这并没有被执行。示例:

function * example () {
  while (true) {
    yield take('initialAction')
    const someAction = yield call(apiClient.someClientAction, parameter)
    yield put({ type: initialAction' })
  }
}

我想知道这是否是正确的模式,或者我是否遗漏了文档中的某些内容。

提前致谢!

任何对解决方案感兴趣的人,请参阅下文:

function * example () {
  const chan = yield actionChannel('initialAction') 
  while (true) {
    yield take(chan)
    const someAction = yield call(apiClient.someClientAction, parameter)
    yield put({ type: initialAction' })
  }
}

欲了解更多信息,check the documentationgithub answer