Reactivecocoa: Pregunta: ¿Cómo convertir Signal a SignalProducer?

Creado en 5 nov. 2015  ·  4Comentarios  ·  Fuente: ReactiveCocoa/ReactiveCocoa

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!

question

Comentario más útil

¡Esto ya está disponible en el marco! :)

let producer = SignalProducer(signal: signal)

Eso esencialmente crea un productor sin efectos secundarios (ver # 2449)

Todos 4 comentarios

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)

¿Fue útil esta página
0 / 5 - 0 calificaciones