From 7c9b33e112f0205a00ac03cba35f9919d5549af7 Mon Sep 17 00:00:00 2001 From: Peter Date: Thu, 20 Sep 2018 00:12:02 +0100 Subject: [PATCH] no message --- SwiftSignalKit/Signal_Mapping.swift | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/SwiftSignalKit/Signal_Mapping.swift b/SwiftSignalKit/Signal_Mapping.swift index 6ea8f10fa7..d8a1b3cc5b 100644 --- a/SwiftSignalKit/Signal_Mapping.swift +++ b/SwiftSignalKit/Signal_Mapping.swift @@ -30,6 +30,22 @@ public func filter(_ f: @escaping(T) -> Bool) -> (Signal) -> Signal< } } +public func flatMap(_ f: @escaping (T) -> R?) -> (Signal) -> Signal { + return { signal in + return Signal { subscriber in + return signal.start(next: { next in + if let value = f(next) { + subscriber.putNext(value) + } + }, error: { error in + subscriber.putError(error) + }, completed: { + subscriber.putCompletion() + }) + } + } +} + public func mapError(_ f: @escaping(E) -> R) -> (Signal) -> Signal { return { signal in return Signal { subscriber in