File tree Expand file tree Collapse file tree 2 files changed +30
-0
lines changed
language-adaptors/rxjava-scala/src
examples/scala/rx/lang/scala/examples Expand file tree Collapse file tree 2 files changed +30
-0
lines changed Original file line number Diff line number Diff line change @@ -843,6 +843,16 @@ class RxScalaDemo extends JUnitSuite {
843
843
// onCompleted
844
844
}
845
845
846
+ @ Test def doOnUnsubscribeExample (): Unit = {
847
+ val o = List (" red" , " green" , " blue" ).toObservable.doOnUnsubscribe { println(" unsubscribed" ) }
848
+ o.subscribe(v => println(v), e => e.printStackTrace, () => println(" onCompleted" ))
849
+ // red
850
+ // green
851
+ // blue
852
+ // onCompleted
853
+ // unsubscribed
854
+ }
855
+
846
856
@ Test def finallyDoExample (): Unit = {
847
857
val o = List (" red" , " green" , " blue" ).toObservable.finallyDo { println(" finally" ) }
848
858
o.subscribe(v => println(v), e => e.printStackTrace, () => println(" onCompleted" ))
Original file line number Diff line number Diff line change @@ -3608,6 +3608,26 @@ trait Observable[+T]
3608
3608
toScalaObservable[T ](asJavaObservable.doOnTerminate(() => onTerminate))
3609
3609
}
3610
3610
3611
+ /**
3612
+ * Modifies the source {@code Observable} so that it invokes the given action when it is unsubscribed from
3613
+ * its subscribers. Each un-subscription will result in an invocation of the given action except when the
3614
+ * source {@code Observable} is reference counted, in which case the source {@code Observable} will invoke
3615
+ * the given action for the very last un-subscription.
3616
+ * <p>
3617
+ * <img width="640" height="310" src="https://raw.github.com/wiki/Netflix/RxJava/images/rx-operators/doOnUnsubscribe.png" alt="">
3618
+ * <dl>
3619
+ * <dt><b>Scheduler:</b></dt>
3620
+ * <dd>{@code doOnUnsubscribe} does not operate by default on a particular {@link Scheduler}.</dd>
3621
+ * </dl>
3622
+ *
3623
+ * @param onUnsubscribe the action that gets called when this { @code Observable} is unsubscribed
3624
+ * @return the source { @code Observable} modified so as to call this Action when appropriate
3625
+ * @see <a href="https://github.com/Netflix/RxJava/wiki/Observable-Utility-Operators#doonunsubscribe">RxJava wiki: doOnUnsubscribe</a>
3626
+ */
3627
+ def doOnUnsubscribe (onUnsubscribe : => Unit ): Observable [T ] = {
3628
+ toScalaObservable[T ](asJavaObservable.doOnUnsubscribe(() => onUnsubscribe))
3629
+ }
3630
+
3611
3631
/**
3612
3632
* Given two Observables, mirror the one that first emits an item.
3613
3633
*
You can’t perform that action at this time.
0 commit comments