我的视图模型中有一个BehaviorSubject
名字createObservable
。我的视图控制器订阅它。
viewModel!.createObservable.subscribe(onNext: {[unowned self] (obj:PassbookModelType?) -> Void in
if let _ = obj{
self.dismissVC()
}
}, onError: { (error) -> Void in
print(error)
}).addDisposableTo(self.dispose)
我saveObject()
在视图模型中也有一个名为的函数。如果我单击导航栏右侧的项目,它将被发射。并且有一个错误将发送给createObservable
' 观察者。
func saveObject(){
```````
```````
if condition {
createObservable.on(Event.Next(model))
createObservable.onCompleted()
}else{
createObservable.onError(MyError.someError)
}
}
问题是如果发生错误,createObservable 将被关闭,所以我以后不会收到任何Next
事件。我尝试使用retry()
,但似乎会导致死锁,视图控制器无法再响应任何触摸事件。那么有人可以告诉我如何解决这个问题吗?非常感谢
viewModel!.createObservable.retry().subscribe(onNext: {[unowned self] (obj:PassbookModelType?) -> Void in
if let _ = obj{
self.dismissVC()
}
}, onError: { (error) -> Void in
print(error)
}).addDisposableTo(self.dispose)