RXJS首先发射

时间:2018-04-23 14:09:41

标签: javascript rxjs

我想map这个值,但只是第一次发光。其他时候它可以通过。有什么想法吗?

this.sourceStream$.takeUntil(this.onDestroy$).someFunc((data) => {
  return data['some tranformation']
}).subscribe(data => {

如果有任何方法可以在没有变量的情况下执行此操作以跟踪是否已收到第一个值?

谢谢!

2 个答案:

答案 0 :(得分:5)

map运算符的第二个参数index会自动递增:

this.sourceStream$.map((value, index) =>
  index === 0 ? whatever(value) : value
);

答案 1 :(得分:1)

使用take skipmerge的组合怎么样。

这些方面的东西应该可以解决问题,即使有点冗长

const obs = Observable.interval(1000).take(4);

const obs1 = obs.take(1).map(val => 'I am the fist '+ val);
const obs2 = obs.skip(1);

merge(obs1, obs2).subscribe(console.log)