Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular ngrx效果-流在完成之前取消以前的流_Angular_Typescript_Ngrx - Fatal编程技术网

Angular ngrx效果-流在完成之前取消以前的流

Angular ngrx效果-流在完成之前取消以前的流,angular,typescript,ngrx,Angular,Typescript,Ngrx,我陷入困境,需要一些建议来指引我正确的方向。我有一个存储,它是一个数组(上下文:一个图表数组),数组中的每个项都有自己的状态。每个项目负责使API成为API调用,但是当触发新效果并进行API调用时,它会取消上一个API调用,从我可以看出,它会一起取消上一个流。非常感谢您的帮助 效果是这样的 最终结果使我的商店看起来像这样 [ { id: 1, data: null, loading: true, loaded: false }, { id: 2

我陷入困境,需要一些建议来指引我正确的方向。我有一个存储,它是一个数组(上下文:一个图表数组),数组中的每个项都有自己的状态。每个项目负责使API成为API调用,但是当触发新效果并进行API调用时,它会取消上一个API调用,从我可以看出,它会一起取消上一个流。非常感谢您的帮助

效果是这样的

最终结果使我的商店看起来像这样

[
  {
    id: 1,
    data: null,
    loading: true,
    loaded: false
  },
  {
    id: 2,
    data: {
      ...
    }
    loading: false,
    loaded: true
  }
]

改用
mergeMap
(或者
concatMap
,如果保留顺序很重要的话)

根据
开关映射

将每个源值投影到一个可观察对象,该可观察对象合并到输出可观察对象中,仅从最近投影的可观察对象发出值

因此,每次效果收到
LOAD\u CHART
操作时,它都会取消订阅当前的
chartApi.getChart
,等等

[
  {
    id: 1,
    data: null,
    loading: true,
    loaded: false
  },
  {
    id: 2,
    data: {
      ...
    }
    loading: false,
    loaded: true
  }
]