angular - 我怎样才能 console.log 观察到的值?

标签 angular typescript rxjs

我正在使用 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/

相关文章:

angular - 拦截输入属性更改的命名约定

javascript - 通过可观察量将数据从组件传递到服务

javascript - FormArray 中的嵌套 FormGroup 重复所有单选按钮值 - Angular(带有 PrimeNG 的 UI)

android - Angular Material 对话框动画在移动设备上非常慢

javascript - 如何在两个不同的 Angular 应用程序之间传递数据

dojo - 当模块名称冲突时如何从 typescript.d.ts 文件访问接口(interface)?

javascript - TypeScript 导入与 ES6 对象解构

javascript - Observable 返回单个数组

angular - rxjs 管道运算符之后的 HttpInterceptor

angular - Observable .catch 不是一个函数