Skip to content
This repository was archived by the owner on Feb 16, 2024. It is now read-only.
This repository was archived by the owner on Feb 16, 2024. It is now read-only.

Wrong OnCompleted timing of ZipObservable #537

@ymfact

Description

@ymfact

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:
zipzip

https://rxmarbles.com/#zip

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 UniRx

reference:
zip

https://reactivex.io/documentation/operators/zip.html

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions