io.reactivex.Observable.single()方法的使用及代码示例

x33g5p2x  于2022-01-25 转载在 其他  
字(8.8k)|赞(0)|评价(0)|浏览(260)

本文整理了Java中io.reactivex.Observable.single()方法的一些代码示例,展示了Observable.single()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Observable.single()方法的具体详情如下:
包路径:io.reactivex.Observable
类名称:Observable
方法名:single

Observable.single介绍

[英]Returns a Single that emits the single item emitted by this Observable, if this Observable emits only a single item, or a default item if the source ObservableSource emits no items. If the source ObservableSource emits more than one item, an IllegalArgumentException is signalled instead.

Scheduler: single does not operate by default on a particular Scheduler.
[中]如果此可观测对象仅发射单个项,则返回发射此可观测对象发射的单个项的单个项;如果源可观测源不发射任何项,则返回默认项。如果源ObservableSource发出多个项,则会发出IllegalArgumentException信号。
调度程序:默认情况下,single不会在特定调度程序上运行。

代码示例

代码示例来源:origin: ReactiveX/RxJava

  1. @Test(expected = NullPointerException.class)
  2. public void singleNull() {
  3. just1.single(null);
  4. }

代码示例来源:origin: ReactiveX/RxJava

  1. /**
  2. * If this {@code Observable} completes after emitting a single item, return that item; if it emits
  3. * more than one item, throw an {@code IllegalArgumentException}; if it emits no items, return a default
  4. * value.
  5. * <p>
  6. * <img width="640" height="315" src="https://github.com/ReactiveX/RxJava/wiki/images/rx-operators/blockingSingleDefault.o.png" alt="">
  7. * <dl>
  8. * <dt><b>Scheduler:</b></dt>
  9. * <dd>{@code blockingSingle} does not operate by default on a particular {@link Scheduler}.</dd>
  10. * <dt><b>Error handling:</b></dt>
  11. * <dd>If the source signals an error, the operator wraps a checked {@link Exception}
  12. * into {@link RuntimeException} and throws that. Otherwise, {@code RuntimeException}s and
  13. * {@link Error}s are rethrown as they are.</dd>
  14. * </dl>
  15. *
  16. * @param defaultItem
  17. * a default value to return if this {@code Observable} emits no items
  18. * @return the single item emitted by this {@code Observable}, or the default value if it emits no
  19. * items
  20. * @see <a href="http://reactivex.io/documentation/operators/first.html">ReactiveX documentation: First</a>
  21. */
  22. @CheckReturnValue
  23. @SchedulerSupport(SchedulerSupport.NONE)
  24. public final T blockingSingle(T defaultItem) {
  25. return single(defaultItem).blockingGet();
  26. }

代码示例来源:origin: ReactiveX/RxJava

  1. @Test
  2. public void testSingleOrDefault() {
  3. Single<Integer> o = Observable.just(1).single(2);
  4. SingleObserver<Integer> observer = TestHelper.mockSingleObserver();
  5. o.subscribe(observer);
  6. InOrder inOrder = inOrder(observer);
  7. inOrder.verify(observer, times(1)).onSuccess(1);
  8. inOrder.verifyNoMoreInteractions();
  9. }

代码示例来源:origin: ReactiveX/RxJava

  1. @Test
  2. public void testSingleOrDefaultObservable() {
  3. Observable<Integer> o = Observable.just(1).single(2).toObservable();
  4. Observer<Integer> observer = TestHelper.mockObserver();
  5. o.subscribe(observer);
  6. InOrder inOrder = inOrder(observer);
  7. inOrder.verify(observer, times(1)).onNext(1);
  8. inOrder.verify(observer, times(1)).onComplete();
  9. inOrder.verifyNoMoreInteractions();
  10. }

代码示例来源:origin: ReactiveX/RxJava

  1. @Test
  2. public void testSingleOrDefaultWithTooManyElements() {
  3. Single<Integer> o = Observable.just(1, 2).single(3);
  4. SingleObserver<Integer> observer = TestHelper.mockSingleObserver();
  5. o.subscribe(observer);
  6. InOrder inOrder = inOrder(observer);
  7. inOrder.verify(observer, times(1)).onError(
  8. isA(IllegalArgumentException.class));
  9. inOrder.verifyNoMoreInteractions();
  10. }

代码示例来源:origin: ReactiveX/RxJava

  1. @Test
  2. public void testSingleOrDefaultWithEmpty() {
  3. Single<Integer> o = Observable.<Integer> empty()
  4. .single(1);
  5. SingleObserver<Integer> observer = TestHelper.mockSingleObserver();
  6. o.subscribe(observer);
  7. InOrder inOrder = inOrder(observer);
  8. inOrder.verify(observer, times(1)).onSuccess(1);
  9. inOrder.verifyNoMoreInteractions();
  10. }

代码示例来源:origin: ReactiveX/RxJava

  1. @Test
  2. public void testSingleOrDefaultWithTooManyElementsObservable() {
  3. Observable<Integer> o = Observable.just(1, 2).single(3).toObservable();
  4. Observer<Integer> observer = TestHelper.mockObserver();
  5. o.subscribe(observer);
  6. InOrder inOrder = inOrder(observer);
  7. inOrder.verify(observer, times(1)).onError(
  8. isA(IllegalArgumentException.class));
  9. inOrder.verifyNoMoreInteractions();
  10. }

代码示例来源:origin: ReactiveX/RxJava

  1. @Test
  2. public void testSingleOrDefaultWithEmptyObservable() {
  3. Observable<Integer> o = Observable.<Integer> empty()
  4. .single(1).toObservable();
  5. Observer<Integer> observer = TestHelper.mockObserver();
  6. o.subscribe(observer);
  7. InOrder inOrder = inOrder(observer);
  8. inOrder.verify(observer, times(1)).onNext(1);
  9. inOrder.verify(observer, times(1)).onComplete();
  10. inOrder.verifyNoMoreInteractions();
  11. }

代码示例来源:origin: ReactiveX/RxJava

  1. @Test
  2. public void testSingleOrDefaultWithPredicateAndEmpty() {
  3. Single<Integer> o = Observable.just(1)
  4. .filter(new Predicate<Integer>() {
  5. @Override
  6. public boolean test(Integer t1) {
  7. return t1 % 2 == 0;
  8. }
  9. })
  10. .single(2);
  11. SingleObserver<Integer> observer = TestHelper.mockSingleObserver();
  12. o.subscribe(observer);
  13. InOrder inOrder = inOrder(observer);
  14. inOrder.verify(observer, times(1)).onSuccess(2);
  15. inOrder.verifyNoMoreInteractions();
  16. }

代码示例来源:origin: ReactiveX/RxJava

  1. @Test
  2. public void singleDefault() {
  3. Observable.just(1).single(100).test().assertResult(1);
  4. Observable.empty().single(100).test().assertResult(100);
  5. }

代码示例来源:origin: ReactiveX/RxJava

  1. @Test
  2. public void testSingleOrDefaultWithPredicate() {
  3. Single<Integer> o = Observable.just(1, 2)
  4. .filter(new Predicate<Integer>() {
  5. @Override
  6. public boolean test(Integer t1) {
  7. return t1 % 2 == 0;
  8. }
  9. })
  10. .single(4);
  11. SingleObserver<Integer> observer = TestHelper.mockSingleObserver();
  12. o.subscribe(observer);
  13. InOrder inOrder = inOrder(observer);
  14. inOrder.verify(observer, times(1)).onSuccess(2);
  15. inOrder.verifyNoMoreInteractions();
  16. }

代码示例来源:origin: redisson/redisson

  1. /**
  2. * If this {@code Observable} completes after emitting a single item, return that item; if it emits
  3. * more than one item, throw an {@code IllegalArgumentException}; if it emits no items, return a default
  4. * value.
  5. * <p>
  6. * <img width="640" height="315" src="https://github.com/ReactiveX/RxJava/wiki/images/rx-operators/blockingSingleDefault.o.png" alt="">
  7. * <dl>
  8. * <dt><b>Scheduler:</b></dt>
  9. * <dd>{@code blockingSingle} does not operate by default on a particular {@link Scheduler}.</dd>
  10. * <dt><b>Error handling:</b></dt>
  11. * <dd>If the source signals an error, the operator wraps a checked {@link Exception}
  12. * into {@link RuntimeException} and throws that. Otherwise, {@code RuntimeException}s and
  13. * {@link Error}s are rethrown as they are.</dd>
  14. * </dl>
  15. *
  16. * @param defaultItem
  17. * a default value to return if this {@code Observable} emits no items
  18. * @return the single item emitted by this {@code Observable}, or the default value if it emits no
  19. * items
  20. * @see <a href="http://reactivex.io/documentation/operators/first.html">ReactiveX documentation: First</a>
  21. */
  22. @CheckReturnValue
  23. @SchedulerSupport(SchedulerSupport.NONE)
  24. public final T blockingSingle(T defaultItem) {
  25. return single(defaultItem).blockingGet();
  26. }

代码示例来源:origin: ReactiveX/RxJava

  1. @Test
  2. public void testSingleOrDefaultWithPredicateObservable() {
  3. Observable<Integer> o = Observable.just(1, 2)
  4. .filter(new Predicate<Integer>() {
  5. @Override
  6. public boolean test(Integer t1) {
  7. return t1 % 2 == 0;
  8. }
  9. })
  10. .single(4).toObservable();
  11. Observer<Integer> observer = TestHelper.mockObserver();
  12. o.subscribe(observer);
  13. InOrder inOrder = inOrder(observer);
  14. inOrder.verify(observer, times(1)).onNext(2);
  15. inOrder.verify(observer, times(1)).onComplete();
  16. inOrder.verifyNoMoreInteractions();
  17. }

代码示例来源:origin: ReactiveX/RxJava

  1. @Test
  2. public void testSingleOrDefaultWithPredicateAndEmptyObservable() {
  3. Observable<Integer> o = Observable.just(1)
  4. .filter(new Predicate<Integer>() {
  5. @Override
  6. public boolean test(Integer t1) {
  7. return t1 % 2 == 0;
  8. }
  9. })
  10. .single(2).toObservable();
  11. Observer<Integer> observer = TestHelper.mockObserver();
  12. o.subscribe(observer);
  13. InOrder inOrder = inOrder(observer);
  14. inOrder.verify(observer, times(1)).onNext(2);
  15. inOrder.verify(observer, times(1)).onComplete();
  16. inOrder.verifyNoMoreInteractions();
  17. }

代码示例来源:origin: ReactiveX/RxJava

  1. @Test
  2. public void testSingleOrDefaultWithPredicateAndTooManyElements() {
  3. Single<Integer> o = Observable.just(1, 2, 3, 4)
  4. .filter(new Predicate<Integer>() {
  5. @Override
  6. public boolean test(Integer t1) {
  7. return t1 % 2 == 0;
  8. }
  9. })
  10. .single(6);
  11. SingleObserver<Integer> observer = TestHelper.mockSingleObserver();
  12. o.subscribe(observer);
  13. InOrder inOrder = inOrder(observer);
  14. inOrder.verify(observer, times(1)).onError(
  15. isA(IllegalArgumentException.class));
  16. inOrder.verifyNoMoreInteractions();
  17. }

代码示例来源:origin: ReactiveX/RxJava

  1. @Test
  2. public void testSingleOrDefaultWithPredicateAndTooManyElementsObservable() {
  3. Observable<Integer> o = Observable.just(1, 2, 3, 4)
  4. .filter(new Predicate<Integer>() {
  5. @Override
  6. public boolean test(Integer t1) {
  7. return t1 % 2 == 0;
  8. }
  9. })
  10. .single(6).toObservable();
  11. Observer<Integer> observer = TestHelper.mockObserver();
  12. o.subscribe(observer);
  13. InOrder inOrder = inOrder(observer);
  14. inOrder.verify(observer, times(1)).onError(
  15. isA(IllegalArgumentException.class));
  16. inOrder.verifyNoMoreInteractions();
  17. }

代码示例来源:origin: ReactiveX/RxJava

  1. @Test
  2. public void singleDefaultObservable() {
  3. Observable.just(1).single(100).toObservable().test().assertResult(1);
  4. Observable.empty().single(100).toObservable().test().assertResult(100);
  5. }

相关文章

Observable类方法