【发布时间】:2019-09-20 17:58:20
【问题描述】:
我之前创建了一个BehaviourSubject,在订阅它时我正在拨打服务电话。但是,由于BehaviorSubject 的性质,BehaviouSubject 的初始化是不必要的。因此,在进一步阅读时,我将BehaviourSubjedct 更改为ReplaySubject(1)。
现在,在我定义了服务的主要@Injectable 类中,还有另一个独立的服务,一旦我进行了上述更改,它就会被延迟。如何确定问题的原因?
组件.ts
constructor(private _subjectService: SubjectService, private _s1: Service1){
this._s1.Call1();
this.testFunction();
}
testFunction(){
this._subjectService.GetData().subscribe(res => {
if (res !== null) {
this._s1.Call2();
}
}
}
主题服务
// filterSubject = new BehaviorSubject(<KendoRequestVM>{});
// filterDataSubject = new BehaviorSubject(<KendoRequestVM>{});
filterSubject = new ReplaySubject<KendoRequestVM>(1);
filterDataSubject = new ReplaySubject<KendoRequestVM>(1);
在这里,当我使用 BehaviouSubject 而不是 ReplaySubject 时,会调用 Call1()。
【问题讨论】:
标签: angular asynchronous rxjs observable