如何使用条件语句订阅不同的服务方法?

Con*_*kov 2 rxjs subject-observer angular rxjs-subscriptions

无法弄清楚如何根据条件语句订阅 Angular 服务所需的方法

  // this.someService.someMethod depending on the conditional statement
  .pipe(takeUntil(this.unsubscribe$))
  .subscribe((items) => {
    this.someData = items;
  });
Run Code Online (Sandbox Code Playgroud)

Has*_*oin 6

iff如果您的两个服务都返回 Observable 或 Promise,则可以使用 RxJs 条件运算符来实现此目的。

iff运算符采用 3 个参数,第一个是您的条件,第二个和第三个是返回 Observable/Promise 的不同服务。

如果条件是true订阅第一个observable,如果是false订阅第二个observable

 iif(
      () => {
           //Add your condition here
           return a + b === 4;
         },
         this.someService.someMethodWhenTrue(),
         this.someService.someMethodWhenFalse()
     )
     .pipe(takeUntil(this.unsubscribe$))
     .subscribe((items)=> {
         this.someData = items;
     });
Run Code Online (Sandbox Code Playgroud)

我建议您阅读此https://www.learnrxjs.io/learn-rxjs/operators/conditional/iif