不需要处理每个网址

时间:2018-10-01 15:11:17

标签: angular typescript

我在这里创建了Angular项目:https://stackblitz.com/edit/angular-5dmqwh

我遇到一个不必要的执行问题,即在每个处理过的网址的isLoading获得false之后,会导致其他无用的请求。在控制台中,url1的这种不需要的执行看起来像:

 `in map --> url1                       app.component.ts:26` 
 `before request --> url1               app.component.ts:29`

,对于url2

 `in map --> url2                       app.component.ts:26` 
 `before request --> url2               app.component.ts:29`

请检查控制台以检查项目输出。

1 个答案:

答案 0 :(得分:0)

似乎您想停止请求,但是流无法知道这是否是错误。一种方法是检查错误并切换行为,例如,我检查是否为假,并通过抛出以下内容中断流:

this.counter$.pipe(
  map(counter => {
    if (counter !== 0) {
      return true;
    } else {
      throw(new Error("explosion")); // This will stop the stream, but you should handle it
    }
  }),
).subscribe(val => {
   console.log('isLoading ...', val);
});