Я использую ReactiveCocoa и у меня есть несколько SignalProducersReactiveCocoa объединить в одну SignalProducers
let center = NSNotificationCenter.defaultCenter()
let signalProducer1 = center.rac_notification(name: notificationName1, object: nil)
let signalProducer2 = center.rac_notification(name: notificationName2, object: nil)
let signalProducer3 = center.rac_notification(name: notificationName3, object: nil)
Я хочу, чтобы объединить их в единый сигнал производителя, который производит сигнал всякий раз, когда один из них производит сигнал.
Сначала функция combineLatest
выглядела как хорошее решение
let combinedProducer = combineLatest(signalProducer1, signalProducer2, signalProducer3)
Однако, согласно this article, в результате производитель только производит свой первый сигнал, когда все три дали сигнал.
This interactive diagram показывает именно то, что я хочу, поэтому я хочу использовать функцию flatten
с помощью .Merge
FlatteningStrategy. Однако мне сложно определить синтаксис, чтобы добиться этого.
См. Https://github.com/ReactiveCocoa/ReactiveCocoa/blob/master/Documentation/BasicOperators.md#merging –