A SignalProducer creates Signals that can produce values of type
Valueand/or fail with errors of type
Error. If no failure should be possible,
NoErrorcan be specified for
SignalProducers can be used to represent operations or tasks, like network requests, where each invocation of
start()will create a new underlying operation. This ensures that consumers will receive the results, versus a plain Signal, where the results might be sent before any observers are attached.
Because of the behavior ofSee more
start(), different Signals created from the producer may see a different version of Events. The Events may arrive in a different order between Signals, or the stream might be completely different!
public struct SignalProducer<Value, Error> where Error : Error