在 ngrx 中获取当前状态

Getting current state in ngrx

Here是在ngrx中获取当前状态的解决方案。这个例子很简单——你只需要使用 take(1)。但是在 take 的 rxjs 文档中它说:

Returns a specified number of contiguous elements from the start of an observable sequence

为什么取第一个值得到当前状态(即最后一个值)?

此外,我在使用 Subject 的单元测试中模拟此行为时遇到了问题。

ngrx-store 是 length=1ReplaySubject,这意味着只有 1 个(最新的)值被缓存并在订阅时重播 - 所以 take(1) 将解析为最新值。