J'ai récemment commencé à convertir de RAC 3 en RAC 4 et j'ai découvert que takeUntil
sur SignalProducer
accepte maintenant SignalProducer
par opposition à Signal
dans RAC 3 .
C'est ma méthode actuelle dans extension SignalType
et ça me semble assez hackish:
func toSignalProducer() -> SignalProducer<T, E> {
return SignalProducer { (sink, _) in
self.observe(
next: { t in sendNext(sink, t) },
completed: { _ in sendCompleted(sink) }
)
}
}
Puis-je améliorer cela? Merci!
Il y a une surcharge takeUntil
de SignalProducer
qui prend un Signal
de v4.0.0-alpha.2: https://github.com/ReactiveCocoa/ReactiveCocoa/blob/v4 .0.0-alpha.2 / ReactiveCocoa / Swift / SignalProducer.swift # L557
Il est temps de faire une mise à jour! Merci: +1:
@ikesyo Juste par curiosité, mon approche de conversion de Signal
en SignalProducer
-elle sous-optimale? Cela peut-il être mieux fait? Je vois que la plupart de l'interopérabilité entre Signal
et SignalProducer
vient des opérateurs de lift
ing Signal
pour accepter SignalProducer
(et à juste titre). La conversion de Signal
en SignalProducer
mal vue?
Ceci est déjà disponible dans le framework! :)
let producer = SignalProducer(signal: signal)
Cela crée essentiellement un producteur sans effets secondaires (voir # 2449)
Commentaire le plus utile
Ceci est déjà disponible dans le framework! :)
Cela crée essentiellement un producteur sans effets secondaires (voir # 2449)