Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Rxjs ReplaySubject使用';空';发射前的值-角度7_Javascript_Angular_Rxjs - Fatal编程技术网

Javascript Rxjs ReplaySubject使用';空';发射前的值-角度7

Javascript Rxjs ReplaySubject使用';空';发射前的值-角度7,javascript,angular,rxjs,Javascript,Angular,Rxjs,我想创建一个没有初始值的主题。 我创建了一个ReplaySubject,它只缓冲最后发出的值。 问题是,在订阅上,在它被发出之前,提供了一个null作为初始值 我的服务: private _replaySubjects = new ReplaySubject<Project>(1); public replaySubjectAsObservable$ = this._replaySubjects.asObservable(); Rxjs版本-6.5.2在使用This发出有效值之

我想创建一个没有初始值的主题。 我创建了一个
ReplaySubject
,它只缓冲最后发出的值。
问题是,在订阅上,在它被发出之前,提供了一个
null
作为初始值

我的服务:

 private _replaySubjects = new ReplaySubject<Project>(1);
 public replaySubjectAsObservable$ = this._replaySubjects.asObservable();

Rxjs版本-6.5.2

在使用
This发出有效值之前,它不会发出任何值。\u replaySubject.next(newProject)

它还有一个额外的好处,即您可以使用
this.\u replaySubject.getValue()
访问订阅之外的最后发出的值

private\u replaySubjects=newbehaviorsubject(null);
public replaySubjectAsObservable$=this.\u replaySubjects.asObservable().pipe(skipWhile(project=>project==null | | project==undefined));;

1个保存值的重播主题为行为主题。行为主体必须包含一个value.ReplaySubject,它缓冲所有已发出的值。您的理解或ReplaySubject是正确的。它不会向新订阅者发出初始值,而是向新订阅者发出最后一个值。您可以显示更多的代码吗?除了现在,它不会发出任何其他空值或未定义的值。谢谢您的回答,但没有回答我的问题。据我所知,ReplaySubject在由.next()发出之前不应该向订阅发送任何值。我的问题是,为什么在调用.next()之前会有一个null的初始值?@Igor.r我刚刚试过你的例子,它不会发出第一个null值。你能分享一个最小的StackBlitz或类似的显示你的问题吗?
 this.subjectSub = someService._projectList$.subscribe(value => {
            console.log(value)
  }); 
private _replaySubjects = new BehaviorSubject<Project>(null);
public replaySubjectAsObservable$ = this._replaySubjects.asObservable().pipe(skipWhile(project => project === null || project === undefined));;