Adds error handling during `bindNext`.
This commit is contained in:
parent
637b19947c
commit
536128f8e8
|
|
@ -16,7 +16,8 @@ extension ObservableType {
|
|||
/**
|
||||
Creates new subscription and sends elements to observer.
|
||||
|
||||
In this form it's equivalent to `subscribe` method, but it communicates intent better.
|
||||
In this form it's equivalent to `subscribe` method, but it communicates intent better, and enables
|
||||
writing more consistent binding code.
|
||||
|
||||
- parameter observer: Observer that receives events.
|
||||
- returns: Disposable object that can be used to unsubscribe the observer.
|
||||
|
|
@ -29,8 +30,8 @@ extension ObservableType {
|
|||
/**
|
||||
Creates new subscription and sends elements to variable.
|
||||
|
||||
In release mode error will be logged in case attempting to bind an error to variable.
|
||||
In debug mode exception will be thrown in case attempting to bind error to variable.
|
||||
In case error occurs in debug mode, `fatalError` will be raised.
|
||||
In case error occurs in release mode, `error` will be logged.
|
||||
|
||||
- parameter variable: Target variable for sequence elements.
|
||||
- returns: Disposable object that can be used to unsubscribe the observer.
|
||||
|
|
@ -42,7 +43,12 @@ extension ObservableType {
|
|||
case let .Next(element):
|
||||
variable.value = element
|
||||
case let .Error(error):
|
||||
bindingErrorToVariable(error)
|
||||
let error = "Binding error to variable: \(error)"
|
||||
#if DEBUG
|
||||
rxFatalError(error)
|
||||
#else
|
||||
print(error)
|
||||
#endif
|
||||
case .Completed:
|
||||
break
|
||||
}
|
||||
|
|
@ -79,13 +85,23 @@ extension ObservableType {
|
|||
|
||||
|
||||
/**
|
||||
Subscribes an element handler to an observable sequence.
|
||||
Subscribes an element handler to an observable sequence.
|
||||
|
||||
In case error occurs in debug mode, `fatalError` will be raised.
|
||||
In case error occurs in release mode, `error` will be logged.
|
||||
|
||||
- parameter onNext: Action to invoke for each element in the observable sequence.
|
||||
- returns: Subscription object used to unsubscribe from the observable sequence.
|
||||
*/
|
||||
@warn_unused_result(message="http://git.io/rxs.ud")
|
||||
public func bindNext(onNext: E -> Void) -> Disposable {
|
||||
return subscribeNext(onNext)
|
||||
return subscribe(onNext: onNext, onError: { error in
|
||||
let error = "Binding error to variable: \(error)"
|
||||
#if DEBUG
|
||||
rxFatalError(error)
|
||||
#else
|
||||
print(error)
|
||||
#endif
|
||||
})
|
||||
}
|
||||
}
|
||||
|
|
@ -228,15 +228,6 @@ func bindingErrorToInterface(error: ErrorType) {
|
|||
#endif
|
||||
}
|
||||
|
||||
func bindingErrorToVariable(error: ErrorType) {
|
||||
let error = "Binding error to variable: \(error)"
|
||||
#if DEBUG
|
||||
rxFatalError(error)
|
||||
#else
|
||||
print(error)
|
||||
#endif
|
||||
}
|
||||
|
||||
// MARK: Abstract methods
|
||||
|
||||
@noreturn func rxAbstractMethodWithMessage(message: String) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue