我知道我需要使用startWith
,但仍在尝试弄清楚如何使用它。如果我执行Subject.create().startWith("Some Value)
,则会将Subject
变为Observable
,而我无法使用next
发出。{/ p>
因此,多个订阅者应该可以subscribe
。应该可以在next
上致电Subject
。浏览Subject.create()
的文档,但速度很慢。
修改
使用已接受的解决方案后我开始工作了。之前没有工作的原因是因为我将.next
调用放在订阅中。
例如:
observable.subscribe((res) => {
// do something
s.next('another res');
}
这会产生无限循环,我认为RXJS会阻止它吗?无论如何,我把next
放在那里用于调试目的。我将它移到subscribe
块之外,现在初始结果发出,然后当调用next
时,subscribe
内的任何内容都会再次发出。
答案 0 :(得分:1)
您应该避免使用Subject.create()
并仅使用Subject()
。请参阅:Subject vs AnonymousSubject
只需保留对Subject实例的引用以及对所需Observable链的另一个引用:
let s = new Subject();
let observable = s.startWith("Some initial message");
observable.subscribe(...);
s.next('whatever');