我有两个热门的 observables 我不想错过任何通知
第一个可观察的产生数字
1-2-3-4
和第二弦
抗体
我正在寻找一种方法来压缩它们以产生下一个输出
a-1 b-2 a-3 b-4 a-5
所以我想要的是无限期地重复第二个流,直到第一个流被取消订阅。我尝试了类似下一个测试的方法,它产生了所需的输出。但是我Repeat
永远不会,因为我不知道如何停下来测试结果。此外,我使用了ReplaySubject
手动完成的,这意味着我无法收到任何新通知。
class MyClass:ReactiveTest{
[Fact]
public void MethodName4() {
var strings = new ReplaySubject<string>();
var testScheduler = new TestScheduler();
testScheduler.Schedule("", TimeSpan.FromTicks(10), (scheduler, s) => {
strings.OnNext("a");
strings.OnNext("b");
strings.OnCompleted();
});
var numbers = testScheduler.CreateHotObservable(OnNext(100, 1), OnNext(200, 2), OnNext(300, 3), OnNext(400, 4), OnNext(500, 5));
numbers.Zip(Observable.Defer(() => strings).Repeat(3), (i, s) => (i, s)).Subscribe();
testScheduler.AdvanceBy(500);
}
}