Split Error Handling and Debugging Operators into separate pages
This commit is contained in:
parent
990c967052
commit
84c42e6dd6
|
|
@ -0,0 +1,83 @@
|
|||
/*:
|
||||
> # IMPORTANT: To use **Rx.playground**:
|
||||
1. Open **Rx.xcworkspace**.
|
||||
1. Build the **RxSwift-OSX** scheme (**Product** → **Build**).
|
||||
1. Open **Rx** playground in the **Project navigator**.
|
||||
1. Show the Debug Area (**View** → **Debug Area** → **Show Debug Area**).
|
||||
----
|
||||
[Previous](@previous) - [Table of Contents](Table_of_Contents)
|
||||
*/
|
||||
import RxSwift
|
||||
/*:
|
||||
# Debugging Operators
|
||||
Operators to help debug Rx code.
|
||||
## `debug`
|
||||
Prints out all subscriptions, events, and disposals.
|
||||
*/
|
||||
example("debug") {
|
||||
let disposeBag = DisposeBag()
|
||||
var count = 1
|
||||
|
||||
let sequenceThatErrors = Observable<String>.create { observer in
|
||||
observer.onNext("🍎")
|
||||
observer.onNext("🍐")
|
||||
observer.onNext("🍊")
|
||||
|
||||
if count < 5 {
|
||||
observer.onError(Error.Test)
|
||||
print("Error encountered")
|
||||
count += 1
|
||||
}
|
||||
|
||||
observer.onNext("🐶")
|
||||
observer.onNext("🐱")
|
||||
observer.onNext("🐭")
|
||||
observer.onCompleted()
|
||||
|
||||
return NopDisposable.instance
|
||||
}
|
||||
|
||||
sequenceThatErrors
|
||||
.retry(3)
|
||||
.debug()
|
||||
.subscribeNext { print($0) }
|
||||
.addDisposableTo(disposeBag)
|
||||
}
|
||||
/*:
|
||||
----
|
||||
## `RxSwift.resourceCount`
|
||||
Provides a count of all Rx resource allocations, which is useful for detecting leaks during development.
|
||||
*/
|
||||
#if NOT_IN_PLAYGROUND
|
||||
#else
|
||||
example("RxSwift.resourceCount") {
|
||||
print(RxSwift.resourceCount)
|
||||
|
||||
let disposeBag = DisposeBag()
|
||||
|
||||
print(RxSwift.resourceCount)
|
||||
|
||||
let variable = Variable("🍎")
|
||||
|
||||
let subscription1 = variable.asObservable().subscribeNext { print($0) }
|
||||
|
||||
print(RxSwift.resourceCount)
|
||||
|
||||
let subscription2 = variable.asObservable().subscribeNext { print($0) }
|
||||
|
||||
print(RxSwift.resourceCount)
|
||||
|
||||
subscription1.dispose()
|
||||
|
||||
print(RxSwift.resourceCount)
|
||||
|
||||
subscription2.dispose()
|
||||
|
||||
print(RxSwift.resourceCount)
|
||||
}
|
||||
|
||||
print(RxSwift.resourceCount)
|
||||
#endif
|
||||
//: > `RxSwift.resourceCount` is not enabled by default, and should generally not be enabled in Release builds. [Click here](Enable_RxSwift.resourceCount) for instructions on how to enable it.
|
||||
|
||||
//: [Table of Contents](Table_of_Contents)
|
||||
|
|
@ -127,76 +127,5 @@ example("retry maxAttemptCount") {
|
|||
.subscribeNext { print($0) }
|
||||
.addDisposableTo(disposeBag)
|
||||
}
|
||||
/*:
|
||||
# Debugging Operators
|
||||
Operators to help debug Rx code.
|
||||
## `debug`
|
||||
Prints out all subscriptions, events, and disposals.
|
||||
*/
|
||||
example("debug") {
|
||||
let disposeBag = DisposeBag()
|
||||
var count = 1
|
||||
|
||||
let sequenceThatErrors = Observable<String>.create { observer in
|
||||
observer.onNext("🍎")
|
||||
observer.onNext("🍐")
|
||||
observer.onNext("🍊")
|
||||
|
||||
if count < 5 {
|
||||
observer.onError(Error.Test)
|
||||
print("Error encountered")
|
||||
count += 1
|
||||
}
|
||||
|
||||
observer.onNext("🐶")
|
||||
observer.onNext("🐱")
|
||||
observer.onNext("🐭")
|
||||
observer.onCompleted()
|
||||
|
||||
return NopDisposable.instance
|
||||
}
|
||||
|
||||
sequenceThatErrors
|
||||
.retry(3)
|
||||
.debug()
|
||||
.subscribeNext { print($0) }
|
||||
.addDisposableTo(disposeBag)
|
||||
}
|
||||
/*:
|
||||
----
|
||||
## `RxSwift.resourceCount`
|
||||
Provides a count of all Rx resource allocations, which is useful for detecting leaks during development.
|
||||
*/
|
||||
#if NOT_IN_PLAYGROUND
|
||||
#else
|
||||
example("RxSwift.resourceCount") {
|
||||
print(RxSwift.resourceCount)
|
||||
|
||||
let disposeBag = DisposeBag()
|
||||
|
||||
print(RxSwift.resourceCount)
|
||||
|
||||
let variable = Variable("🍎")
|
||||
|
||||
let subscription1 = variable.asObservable().subscribeNext { print($0) }
|
||||
|
||||
print(RxSwift.resourceCount)
|
||||
|
||||
let subscription2 = variable.asObservable().subscribeNext { print($0) }
|
||||
|
||||
print(RxSwift.resourceCount)
|
||||
|
||||
subscription1.dispose()
|
||||
|
||||
print(RxSwift.resourceCount)
|
||||
|
||||
subscription2.dispose()
|
||||
|
||||
print(RxSwift.resourceCount)
|
||||
}
|
||||
|
||||
print(RxSwift.resourceCount)
|
||||
#endif
|
||||
//: > `RxSwift.resourceCount` is not enabled by default, and should generally not be enabled in Release builds. [Click here](Enable_RxSwift.resourceCount) for instructions on how to enable it.
|
||||
|
||||
//: [Table of Contents](Table_of_Contents)
|
||||
|
|
@ -14,7 +14,8 @@
|
|||
1. [Filtering and Conditional Operators](Filtering_and_Conditional_Operators)
|
||||
1. [Mathematical and Aggregate Operators](Mathematical_and_Aggregate_Operators)
|
||||
1. [Connectable Operators](Connectable_Operators)
|
||||
1. [Debugging and Error Handling Operators](Debugging_and_Error_Handling_Operators)
|
||||
1. [Error Handling Operators](Error_Handling_Operators)
|
||||
1. [Debugging Operators](Debugging_Operators)
|
||||
*/
|
||||
|
||||
//: [Next](@next)
|
||||
|
|
|
|||
|
|
@ -10,7 +10,8 @@
|
|||
<page name='Filtering_and_Conditional_Operators'/>
|
||||
<page name='Mathematical_and_Aggregate_Operators'/>
|
||||
<page name='Connectable_Operators'/>
|
||||
<page name='Error_Handling_and_Debugging_Operators'/>
|
||||
<page name='Error_Handling_Operators'/>
|
||||
<page name='Debugging_Operators'/>
|
||||
<page name='Enable_RxSwift.resourceCount'/>
|
||||
</pages>
|
||||
</playground>
|
||||
Loading…
Reference in New Issue