Rxjs ReplaySubject инициализируется значением 'null' перед отправкой - Angular 7 - PullRequest
3 голосов
/ 04 июля 2019

Я хочу создать тему без начального значения. Я создал 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

1 Ответ

0 голосов
/ 04 июля 2019

Это значение не будет выдано, пока не будет получено значительное значение с 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));;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...