public override void Subscribe(IFlowableSubscriber <R> subscriber) { var s = sources; var n = s.Length; var parent = new ZipSubscription(subscriber, zipper, n, prefetch); subscriber.OnSubscribe(parent); parent.Subscribe(s); }
public void Subscribe(ISubscriber <R> s) { int n; IPublisher <T>[] a; if (!MultiSourceHelper.ToArray(sources, sourcesEnumerable, s, out n, out a)) { return; } if (n == 0) { EmptySubscription <R> .Complete(s); return; } else if (n == 1) { new PublisherMap <T, R>(a[0], v => zipper(new T[] { v })).Subscribe(s); return; } if (s is IConditionalSubscriber <R> ) { var parent = new ZipConditionalSubscription((IConditionalSubscriber <R>)s, n, zipper, prefetch, delayErrors); s.OnSubscribe(parent); parent.Subscribe(a, n); } else { var parent = new ZipSubscription(s, n, zipper, prefetch, delayErrors); s.OnSubscribe(parent); parent.Subscribe(a, n); } }