Как использовать ReactiveX для выполнения асинхронных вызовов в последовательности? I.e., выполнить второй вызов после завершения первого.Как пользователь ReactiveX для выполнения async в последовательности
Более конкретно, я работаю с RxSwift в прошивке, и asyncs я хочу цепь вместе, является UIView
анимацией (вместо вызова второй анимации внутри completion
блока первого).
Я знаю, что у меня есть другие варианты, такие как Easy Animation, но я бы хотел использовать Rx, так как я уже использую его для потоков.
Кроме того, одним из решений может быть (для 3 прикованных анимации):
_ = UIView.animate(duration: 0.2, animations: {
sender.transform = CGAffineTransformMakeScale(1.8, 1.8)
})
.flatMap({ _ in
return UIView.animate(duration: 0.2, animations: {
sender.transform = CGAffineTransformMakeScale(0.8, 0.8)
})
})
.flatMap({ _ in
return UIView.animate(duration: 0.2, animations: {
sender.transform = CGAffineTransformIdentity
})
})
.subscribeNext({ _ in })
Но я искал что-то более элегантное, правильный способ сделать это с Rx.
Что случилось с вашим примером кода? Вы имели в виду, что это псевдо-код? Вы вызываете 'flatMap' на' Void', а не 'SequenceType' или' Observable'. Кроме того, это 'animateWithDuration: анимации:', а не 'animate: animations:'. Я не уверен, что вы намеревались включить этот код. – solidcell
Я создал метод 'animate: ...' для возврата наблюдаемого, поэтому no, а не псевдокод –