REDUX -SAGA-如何在Action Dispatch上取消分叉过程



我有一个以下传奇:

function* interiorFileSaga() {
  yield [
    takeLatest(wizardActionTypes.UPLOAD_INTERIOR_FILE, handleInteriorFileUpload),
    takeLatest(wizardActionTypes.INTERIOR_FILE_PROCESSING, handleInteriorFileProcessing),
  ]
}

负责上传和处理文件。在Handle IntereriorFileProcessing中,我有一个段循环,这是检查文件处理的进度等。我想取消分叉的过程,当我们派遣某个操作时 - 当用户更改页面时,在组件上,我想停止该过程。我知道取消效果是将过程作为一个论点。有什么办法可以取消所有子流程?在这里取消thange IntereriorFileprocessing过程的正确语法是什么,例如cancel_background_job。我是SAGA的初学者,找不到一种取消传奇过程的方法,该过程负责在此处签署一些任务。最良好的祝愿。

最简单的可能是做

takeLatest([wizardActionTypes.INTERIOR_FILE_PROCESSING, CANCEL_BACKGROUND_JOB], handleInteriorFileProcessing)

和您的功能内部的检查实际发生了。这是因为takeLatest取消从该语句运行任务。

取消事物的另一种方法是使用race效果,它取消所有"失败者"。

最新更新