Wrong OnCompleted timing of ZipObservable
Author: ymfactCreated Nov 29, 2023Updated Nov 29, 2023
ZipObservable has wrong OnCompleted timing.
var source1 = new Subject<int>();
var source2 = new Subject<char>();
var observable = Observable.Zip(source1, source2, (x, y) => $"{x}{y}");
observable.Subscribe(
onNext: Console.WriteLine,
onCompleted: () => Console.WriteLine("OnCompleted"));
source1.OnNext(1);
source2.OnNext('A');
source1.OnNext(2);
source2.OnNext('B');
source2.OnNext('C');
source2.OnNext('D');
source1.OnNext(3);
source2.OnCompleted();
source1.OnNext(4); // observable should be completed here
source1.OnNext(5); // observable is completed here in UniRx
source1.OnCompleted();reference:
var source1 = new Subject<int>();
var source2 = new Subject<char>();
var observable = Observable.Zip(source1, source2, (x, y) => $"{x}{y}");
observable.Subscribe(
onNext: Console.WriteLine,
onCompleted: () => Console.WriteLine("OnCompleted"));
source1.OnNext(1);
source2.OnNext('A');
source1.OnNext(2);
source2.OnNext('B');
source1.OnNext(3);
source2.OnNext('C');
source1.OnCompleted(); // observable should be completed here
source2.OnCompleted(); // observable is completed here in UniRxreference:
Source: neuecc/UniRx