私はまだ反応の初心者であり、私は助けを求めています。2つを組み合わせるObservable <Void>s
func doA() -> Observable<Void>
func doB() -> Observable<Void>
enum Result {
case Success
case BFailed
}
func doIt() -> Observable<Result> {
// start both doA and doB.
// If both complete then emit .Success and complete
// If doA completes, but doB errors emit .BFailed and complete
// If both error then error
}
上記...初期機能doA()
とdoB()
ラップネットワークは、彼らは両方ともComplete
そして、一つの信号を発するとなりますので、呼び出します(またはError
任意のNext
イベントを放出せず。)doA()
完了した場合、私は私が欲しいと思うものですdoB()
のエラーが発生した場合は、doIt()
に.BFailed
を送信して終了します。
zip
またはcombineLatest
を使用する必要があるように感じますが、それを行うとどのシーケンスが失敗するかをわかりません。私はまた、確かにcatchError
がソリューションの一部であることを確信していますが、正確にどこに置くべきかわかりません。
-
私はそれについて考えていたように、私は、呼び出しが順次起こって大丈夫です。
Start doA()
if it completes start doB()
if it completes emit .Success
else emit .BFailed.
else forward the error.
任意の助けてくれてありがとう:それはでも...
IE良いかもしれません。
うーん...答えてくれてありがとう、しかしRxSwiftはマテリアライズメソッドを持っていません。少なくともまだ。 –