Generic Instance Method


Subscribes to three additional publishers and invokes a closure upon receiving output from any of the publishers.


func combineLatest<P, Q, R, T>(_ publisher1: P, _ publisher2: Q, _ publisher3: R, _ transform: @escaping (Upstream.Output, P.Output, Q.Output, R.Output) -> T) -> Publishers.Map<Publishers.CombineLatest4<Publishers.Catch<Upstream, NewPublisher>, P, Q, R>, T> where P : Publisher, Q : Publisher, R : Publisher, Self.Failure == P.Failure, P.Failure == Q.Failure, Q.Failure == R.Failure



A second publisher to combine with this one.


A third publisher to combine with this one.


A fourth publisher to combine with this one.


A closure that receives the most recent value from each publisher and returns a new value to publish

Return Value

A publisher that receives and combines elements from this publisher and three other publishers.


The combined publisher passes through any requests to all upstream publishers. However, it still obeys the demand-fulfilling rule of only sending the request amount downstream. If the demand isn’t unlimited, it drops values from upstream publishers. It implements this by using a buffer size of 1 for each upstream, and holds the most recent value in each buffer. All upstream publishers need to finish for this publisher to finish. If an upstream publisher never publishes a value, this publisher neither produces any elements nor signals that publishing has completed. If any of the combined publishers terminates with a failure, this publisher also fails.