Недавно я начал преобразовывать RAC 3 в RAC 4 и обнаружил, что takeUntil
на SignalProducer
теперь принимает SignalProducer
вместо Signal
в RAC 3 .
Это мой текущий метод в extension SignalType
и он кажется довольно хакерским:
func toSignalProducer() -> SignalProducer<T, E> {
return SignalProducer { (sink, _) in
self.observe(
next: { t in sendNext(sink, t) },
completed: { _ in sendCompleted(sink) }
)
}
}
Могу я это улучшить? Спасибо!
Существует takeUntil
перегрузка SignalProducer
которая принимает Signal
из v4.0.0-alpha.2: https://github.com/ReactiveCocoa/ReactiveCocoa/blob/v4 .0.0-alpha.2 / ReactiveCocoa / Swift / SignalProducer.swift # L557
Пришло время обновления! Спасибо: +1:
@ikesyo Просто из любопытства, мой подход к преобразованию Signal
в SignalProducer
неоптимален? Можно это сделать лучше? Я вижу, что наибольшая совместимость между Signal
и SignalProducer
операторами lift
ing Signal
, которые принимают SignalProducer
(и это правильно). Не одобряется ли преобразование Signal
в SignalProducer
?
Это уже доступно в рамках! :)
let producer = SignalProducer(signal: signal)
По сути, это создает производителя без побочных эффектов (см. №2449).
Самый полезный комментарий
Это уже доступно в рамках! :)
По сути, это создает производителя без побочных эффектов (см. №2449).