我有两个相互依赖的服务,比方说serviceA
和serviceB
。 serviceA
从组件调用中执行操作方法,并且必须在过程结束时发出一个值。从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);
});
}
我对从此发射中侦听的组件进行了测试,并且它起作用了。难道我做错了什么?还有其他选择吗?
尝试将这些服务设置为@Injectable({ providedIn: 'root' })