在地图运算符中更改数据以进行其他可观察

时间:2019-09-19 15:47:26

标签: angular rxjs

我对可观测的工作有一些误解。希望有人能帮助我。

问题是我有两个观察对象。我正在获取第一个值,如果它满足我的条件,我想在其他可观察值内更改数据。而且我不想将它们结合在一起。当我尝试更改数据时,我调用了一个函数,并且它不在第二个可观察的反应链的map内部来。我做错了什么? (我猜都是:D)

我已经创建了一个外观粗鲁的示例。这是代码和link to playground

ngOnInit() {

  this.first$ = Observable.create(observer => observer.next(1));

  this.second$ = timer(0, 1000)
    .pipe(
      map(() => this.counter + this.incrementValue)
    )
    .subscribe(data => console.log('second', data));

  this.first$.pipe(
    map(value => {
      console.log('first a', value)
      return this.decrementValueInSecondObs()
    })
  ).subscribe(data => console.log(data))
}

private decrementValueInSecondObs() {
  this.second$
  .pipe(
    map(value => {
      console.log('SECOND VALUE', value)
      return this.counter - 2;
    })
  ).subscribe(a => console.log('first b', a))
}

还有 Bonus::是否有人可以解释或附加链接,以回答我只订阅他的可观察者时为什么可以在rxjs中使用map运算符的原因?

0 个答案:

没有答案