繁体   English   中英

RXJS链可观察物随时完成

[英]RXJS chain observables completing at any point

有什么方法可以链接多个可观察对象,但可以随时完成链接? 我有三个Observable,它们都返回布尔值。 但是,如果当前可观察的值是false,我只想前进到链中的下一个可观察的值。 可观察值必须在最后一个值完成时进行,并且完成值为false。 这可能吗?

您可以设置一个可观察对象来控制流程并在完成后完成它。 还可以使用zip运算符-如果可观察到的一个(在我们的示例中为控件一个)完成,它将完成整个流程。

 let control$ = new Rx.Subject();

 let data$ = Rx.Observable.interval()
  .map(x => x<10?true:false)
  .do(flag => {
    if(flag) control$.next(true);
    else control$.complete();
 });

 Rx.Observable.zip(data$.filter(x=>x), control$.startWith(true), (x,y)=>x)
  .subscribe(x=>console.log(x))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM