角度上的跨服务通信

问题描述 投票:0回答:1

我有两个相互依赖的服务,比方说serviceAserviceBserviceA从组件调用中执行操作方法,并且必须在过程结束时发出一个值。从serviceB监听此发射,然后必须更新其方法。我作为this answer做过,但是subject在服务之间似乎不起作用。

@Injectable()
export class ServiceA {
  // Observable source
  private textSource = new Subject<string>();

  // Observable stream
  text$ = this.textSource.asObservable();

  methodCalledFromComp() {
    // does some work
    this.textSource.next('someValue');
  }
@Injectable()
export class ServiceB {
  construct(private serviceA: ServiceA) {
    serviceA.text$.subscribe(el => {
      // not comes here, only when I call the same from a method
      console.log(el);
    });
  }

我对从此发射中侦听的组件进行了测试,并且它起作用了。难道我做错了什么?还有其他选择吗?

angular rxjs singleton subject
1个回答
0
投票

尝试将这些服务设置为@Injectable({ providedIn: 'root' })

© www.soinside.com 2019 - 2024. All rights reserved.