我正在使用角度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的值,我该怎么做?
使用常规observable,只有在更改时才能获得值,因此如果您想要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>)
。这应该可以帮到你找到你想要的东西。
使用常规observable,只有在更改时才能获得值,因此如果您想要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>)
。这应该可以帮到你找到你想要的东西。