如何使用ReactiveX按順序執行異步調用? 即,在第一個完成後執行第二個呼叫。如何使用ReactiveX按順序執行異步
更具體地說,我在iOS中使用RxSwift,我想鏈接在一起的異步是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這樣做的正確方法。
怎麼了你的代碼示例?你的意思是它是僞代碼嗎?你在'Void'上調用'flatMap',而不是'SequenceType'或'Observable'。另外,animateWithDuration:動畫:',而不是'animate:動畫:'。我不確定你打算加入該代碼的意圖。 – solidcell
我創建了'animate:...'方法來返回一個observable,所以不,不是僞代碼 –