创建RxJS BehaviorSubject
时,它会保持BehaviorSubject
直到pipe
为止。一旦返回pipe
'版本,它就会变为AnonymousSubject
。
// Instance of `BehaviorSubject`
const behaviorSubject$ = new BehaviorSubject({ someValue: null })
// Suddenly becomes an Anonymous Subject
const anonymousSubject$ = (
behaviorSubject$
.pipe(
pluck('someValue')
)
)
// Also suddenly becomes an Anonymous Subject
const anonymousSubject$ = (
new BehaviorSubject({ someValue: null })
.pipe(
pluck('someValue')
)
)
我也遇到了ReplaySubject
同样的问题。我似乎无法通过主题并将该主题归还。它总是转换为AnonymousSubject
。我认为我在这里寻找的是类似Promise的行为,我可以从任何地方订阅这个observable,并获取传递给它的一个值。
答案 0 :(得分:3)
让我们更深入地研究您的示例:
BehaviorSubject
的实例
Subject
pluck
运算符
map
运算符map
运算符internally调用lift
上的BehaviorSubject
,该{@ 1被委托给Subject
,然后返回AnonymousSubject