2016-08-19 3 views
8

Я использую угловые 2 и RxJS, и мне интересно, как я могу сделать следующее:Как я могу console.log значение наблюдаемого?

В моем компоненте я определил следующее:

count: Observable<number>;

В конструкторе моего компонента, я я делаю следующее:

constructor(
    private store: Store<any> 
) { 
    this.count = this.store.select<any>(state => state.count); 
    } 

Как просмотреть текущее значение для счета? Прямо сейчас, если я console.log(this.count) Я получаю большой объект для регистрации. Если я хочу посмотреть только значение this.count, как я могу это сделать?

ответ

9

С регулярным наблюдаемым вы получите только значение, когда оно меняется, так что если вы хотите, чтобы 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 в функции ... импортирует его из библиотеки 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>). Это должно получить то, что вы ищете.

+1

спасибо, что попробую! – user1354934

Смежные вопросы