我在这里创建了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`
请检查控制台以检查项目输出。
答案 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);
});