Recientemente comencé a convertir de RAC 3 a RAC 4 y descubrí que takeUntil
en SignalProducer
ahora acepta SignalProducer
en lugar de Signal
en RAC 3 .
Este es mi método actual en extension SignalType
y se siente bastante pirateado:
func toSignalProducer() -> SignalProducer<T, E> {
return SignalProducer { (sink, _) in
self.observe(
next: { t in sendNext(sink, t) },
completed: { _ in sendCompleted(sink) }
)
}
}
¿Puedo mejorar esto? ¡Gracias!
Hay una sobrecarga de takeUntil
de SignalProducer
que toma un Signal
de v4.0.0-alpha.2: https://github.com/ReactiveCocoa/ReactiveCocoa/blob/v4 .0.0-alpha.2 / ReactiveCocoa / Swift / SignalProducer.swift # L557
¡Es hora de una actualización! Gracias: +1:
@ikesyo Solo por curiosidad, ¿mi enfoque de convertir Signal
en SignalProducer
es subóptimo? ¿Se puede hacer esto mejor? Veo que la mayor parte de la interoperabilidad entre Signal
y SignalProducer
viene de los operadores de lift
ing Signal
para aceptar SignalProducer
(y con razón). ¿Está mal visto convertir Signal
en SignalProducer
?
¡Esto ya está disponible en el marco! :)
let producer = SignalProducer(signal: signal)
Eso esencialmente crea un productor sin efectos secundarios (ver # 2449)
Comentario más útil
¡Esto ya está disponible en el marco! :)
Eso esencialmente crea un productor sin efectos secundarios (ver # 2449)