【问题标题】:Unnecessary call for every processed url [duplicate]对每个处理的网址进行不必要的调用[重复]
【发布时间】:2018-10-01 15:11:17
【问题描述】:

我在这里创建了 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`

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

【问题讨论】:

  • 你能解释一下你想要达到的目标吗?

标签: angular typescript


【解决方案1】:

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

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);
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-25
    • 2020-08-13
    • 1970-01-01
    • 2019-12-01
    • 1970-01-01
    • 2017-10-11
    • 2019-04-02
    • 2019-04-16
    相关资源
    最近更新 更多