【发布时间】:2016-04-25 15:55:09
【问题描述】:
在 RxJS 中,我希望订阅在流中保持不变,即使流发生了变化。下面我使用了一个间隔流来测试行为
//Works because foo$ is unchanged
let foo$ = Rx.Observable.interval(1000);
foo$.subscribe(x => console.log(`foo$: ${x}`));
//Doesn't work because bar$ is changed
let bar$ = Rx.Observable.never();
bar$.subscribe(x => console.log(`bar$: ${x}`))
bar$ = Rx.Observable.interval(1000);
如何在更改bar$ 流时保留订阅?
在我更改 bar$ 后,我是否必须处理订阅并设置另一个订阅?
【问题讨论】:
-
你为什么不测试一下呢?这很容易做到。我希望 barFunc 像往常一样接收它的值。您不订阅
foo$,而是订阅foo$引用的内容(在订阅时)。如果foo$稍后更改,它不应更改订阅的任何内容。但正如我所说,测试它并告诉我们结果。 -
我已经更新了代码并在 jsbin 上进行了测试。没运气。还有其他想法吗?
-
... Rx.Observable.never 是一个从不发出值的可观察对象... 你做梦也想不到更糟糕的测试示例。
标签: javascript rxjs observable reactivex