我想map
这个值,但只是第一次发光。其他时候它可以通过。有什么想法吗?
this.sourceStream$.takeUntil(this.onDestroy$).someFunc((data) => {
return data['some tranformation']
}).subscribe(data => {
如果有任何方法可以在没有变量的情况下执行此操作以跟踪是否已收到第一个值?
谢谢!
答案 0 :(得分:5)
map
运算符的第二个参数index
会自动递增:
this.sourceStream$.map((value, index) =>
index === 0 ? whatever(value) : value
);
答案 1 :(得分:1)
使用take
skip
和merge
的组合怎么样。
这些方面的东西应该可以解决问题,即使有点冗长
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)