Reactjs 重演传奇取消效果触发错误“;“已在运行”;虽然它确实取消了。或者如何从控制台中删除此错误?

Reactjs 重演传奇取消效果触发错误“;“已在运行”;虽然它确实取消了。或者如何从控制台中删除此错误?,reactjs,redux,generator,redux-saga,Reactjs,Redux,Generator,Redux Saga,从几周以来,我一直在努力理解为什么我的yield cancel在我的根传奇中尝试运行cancel效果时抛出错误: export function* loginData() { const watcher = yield fork(getLoginWatcher); yield take(LOCATION_CHANGE); yield cancel(watcher); } 控制台中出现错误: utils.js:202 uncaught at getLogin Generator is

从几周以来,我一直在努力理解为什么我的
yield cancel
在我的根传奇中尝试运行
cancel
效果时抛出错误:

export function* loginData() {
  const watcher = yield fork(getLoginWatcher);
  yield take(LOCATION_CHANGE);
  yield cancel(watcher);
}
控制台中出现错误:

utils.js:202 uncaught at getLogin Generator is already running"
如果我删除了取消,我的传奇不会被取消。这就像同时工作和抛出错误一样

这个错误让我很恼火,我的应用程序似乎有问题

执行环境:

  • Debian 8 Jessie
  • 版本54.0.2840.100(64位)
  • 节点v7.2.0
  • Npm 3.10.9

是否有人知道
redux saga/effects
proc如何处理
cancel
效果以及如何运行错误生成。

我认为造成这种情况的原因可能不是描述中所述的取消效果。我试图独立完成一个类似的登录过程,使用react样板文件,发现许多其他示例使用的是比最新样板文件代码更旧的方法,因此一直在解决这些问题,我也得到了这个确切的错误,调用堆栈中的错误似乎来自取消效果。 然而,当阅读这里发布的同一个问题时,有人认为这实际上是一个错误,因为调用“forwardTo”时没有使用

收益呼叫(forwardTo、params)


一旦我把传说中的说法改成这个,错误就消失了。我想这就是问题的解决办法。其他人似乎同意github问题页面。

您会写下整个saga文件还是至少写下
getLogin
生成器?因为从您刚才提到的任务取消中没有问题,这里的执行环境是什么(chrome?的版本?,节点?)。我问,因为它可能是一个V8错误。请看或@Basim,我已经上传了整个故事,我已经在pastebin中发布了。上次我发布了整个传奇文件,有人投票否决了我,让我选择代码的相关部分。另外,我确信它来自于取消,并且
getLogin
很简单:@yassinelouafi。这两个链接您发送给我或类似。你知道我怎么能确定这是不是一个v8错误,你可以尝试其他浏览器,比如Edge、firefox或者babel Transpile代码。为了跟进这一问题,您是否可以向redux saga回购协议发送一份PR?另外,提供一些可运行的测试用例或gist/jsbin也是非常有帮助的?