我想创建一个没有初始值的主题。
我创建了一个ReplaySubject
,它仅缓冲最后发出的值。
问题在于订阅上的null
会在发出之前作为初始值。
我的服务:
private _replaySubjects = new ReplaySubject<Project>(1);
public replaySubjectAsObservable$ = this._replaySubjects.asObservable();
我的组件
this.subjectSub = someService._projectList$.subscribe(value => {
console.log(value)
});
Rxjs版本-6.5.2
答案 0 :(得分:0)
在用this._replaySubject.next(newProject)
发出有意义的值之前,它不会发出任何值。
它的另一个好处是,您可以使用this._replaySubject.getValue()
访问订阅之外的最后一个发出的值。
private _replaySubjects = new BehaviorSubject<Project>(null);
public replaySubjectAsObservable$ = this._replaySubjects.asObservable().pipe(skipWhile(project => project === null || project === undefined));;