我可以用.take(1)安全地替换.takeUntil(Observable.timer(0))吗?

时间:2017-12-18 22:02:50

标签: angular rxjs ngrx

我正在为我的ngrx项目做一些代码清理工作,并发现一些不遵循我们惯常做法的RXJS代码。我想知道用符合我们惯常做法的代码替换它是否安全。

这是与我们的常规做法不符的代码:

stream$.takeUntil(Observable.timer(0)).subscribe();

我想知道上面的代码是否等同于以下代码:

stream$.take(1).subscribe();

从我已阅读的timer documentationtake documentation开始,这两行代码似乎是等效的。这是正确的结论吗?

1 个答案:

答案 0 :(得分:3)

  

我想知道上面的代码是否等同于以下代码:

不,不是:

const stream$ = Observable.of(1, 2, 3);

会给出

stream$.takeUntil(Observable.timer(0)) // 1, 2, 3
stream$.take(1)                        // 1