在某个点中止 concat observables

Rod*_*nez 2 rxjs typescript angular

我有一个要调用的可观察对象列表,我正在使用 concat 来逐个执行它们,问题是我想在收到一个结果后的某个时刻停止 concat 执行

const list = [
    this.http.get('someurl'), 
    this.http.get('someurl'), 
    this.http.get('someurl'),
    ...
    ];

concat(list).subscribe((result) => {
     if(result === 3){
        //stop concat and return
     }
});
Run Code Online (Sandbox Code Playgroud)

Wil*_*der 5

您可以使用takeWhile运算符:

concat(list).pipe(
  takeWhile(res => res !== 3)
).subscribe();
Run Code Online (Sandbox Code Playgroud)