我正在使用一项服务来保存一个值,并在另一个组件中使用它。 这是我的服务,
export class PageService {
template_type$:Observable<any>;
private myMethodSubject1 = new BehaviorSubject<any>('hi');
constructor() {
this.template_type$ = this.myMethodSubject1.asObservable();
}
template_type(selectedType){
this.myMethodSubject1.next(selectedType);
//console.log(selectedType);
}
}
在我的职能中,我向这项服务发送价值,
this.pService.template_type('one');
在同一组件的另一个功能中,我将此服务称为获得价值
this.pService.template_type$.subscribe(data=>{
console.log(data);
})
但是它首先返回“ hi”,在函数调用之后它返回值..但是我首先需要值...代码中是否有错误?
答案 0 :(得分:0)
听起来您不想使用BehaviorSubject
,而是使用ReplaySubject(1)
:
private myMethodSubject1 = new ReplaySubject<any>(1);
这没有初始值。