我正在使用 angular 2 和 RxJS,我想知道如何执行以下操作:
在我的组件中,我定义了以下内容:
count: Observable<number>;
在我的组件的构造函数中,我正在执行以下操作:
constructor(
private store: Store<any>
) {
this.count = this.store.select<any>(state => state.count);
}
如何查看计数的当前值?现在如果我console.log(this.count)
我有一个很大的对象要记录。如果我只想查看 this.count 的值,我该怎么做?
最佳答案
对于常规的可观察对象,您只能在它发生变化时获取值,因此如果您想要 console.log 输出您需要在订阅中进行 console.log 的值:
constructor(
private store: Store<any>
) {
this.count = this.store.select<any>(state => state.count);
this.count.subscribe(res => console.log(res));
}
但是,如果您希望能够随时获取当前值,那么您需要的是一个 BehaviorSubject(它在函数中结合了一个 Observable 和一个 Observer...像您做 Observable 一样从 rxjs 库中导入它).
private count:BehaviorSubject<number> = new BehaviorSubject<number>(0);
constructor(
private store: Store<any>
) {
let self = this;
self.store.select<any>(state => self.count.next(state.count));
}
然后任何时候你想得到计数的当前值你会调用this.count.getValue()
更改您将调用的值 this.count.next(<the value you want to pass in>)
.这应该能满足您的需求。
关于angular - 我怎样才能 console.log 观察到的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39044156/