Um ein Signal zu erzeugen, das manuell senden kann, können Sie Signal<(), NoError>.pipe()
verwenden, um eine Referenz auf den "Beobachter" des Signals zu erhalten, mit dem Sie Ereignisse auf dem Signal manuell senden können.
let (flagSignal, flagObserver) = Signal<(), NoError>.pipe()
someSignal.takeUntil(flagSignal).observeNext { _ in
}
//somewhere else, trigger the signal manually with the Observer
flagObserver.sendNext(())
flagObserver.sendCompleted() //complete the signal and free memory
und wenn Sie Ihre flagSignal
zu einem SignalProducer
aus irgendeinem Grund konvertieren müssen, gibt es eine SignalProducer
Konstruktor für das,
let flagSignalProducer = SignalProducer(signal: flagSignal)