io.reactivex.Single.doOnEvent()方法的使用及代码示例

x33g5p2x  于2022-01-29 转载在 其他  
字(4.0k)|赞(0)|评价(0)|浏览(155)

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

Single.doOnEvent介绍

[英]Calls the shared consumer with the error sent via onError or the value via onSuccess for each SingleObserver that subscribes to the current Single. Scheduler: doOnEvent does not operate by default on a particular Scheduler.
[中]为订阅当前单曲的每个SingleObserver调用共享使用者,并通过onError发送错误或通过onSuccess发送值。调度器:默认情况下,doOnEvent不会在特定的调度器上运行。

代码示例

代码示例来源:origin: TeamNewPipe/NewPipe

@Override
protected void loadMoreItems() {
  isLoading.set(true);
  showListFooter(true);
  if (searchDisposable != null) searchDisposable.dispose();
  searchDisposable = ExtractorHelper.getMoreSearchItems(
        serviceId,
        searchString,
        asList(contentFilter),
        sortFilter,
        nextPageUrl)
      .subscribeOn(Schedulers.io())
      .observeOn(AndroidSchedulers.mainThread())
      .doOnEvent((nextItemsResult, throwable) -> isLoading.set(false))
      .subscribe(this::handleNextItems, this::onError);
}

代码示例来源:origin: TeamNewPipe/NewPipe

@Override
public void startLoading(boolean forceLoad) {
  super.startLoading(forceLoad);
  if (disposables != null) disposables.clear();
  if (searchDisposable != null) searchDisposable.dispose();
  searchDisposable = ExtractorHelper.searchFor(serviceId,
        searchString,
        Arrays.asList(contentFilter),
        sortFilter)
      .subscribeOn(Schedulers.io())
      .observeOn(AndroidSchedulers.mainThread())
      .doOnEvent((searchResult, throwable) -> isLoading.set(false))
      .subscribe(this::handleResult, this::onError);
}

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

@Test
public void doOnEventError() {
  final AtomicInteger atomicInteger = new AtomicInteger(0);
  Single.error(new RuntimeException()).doOnEvent(new BiConsumer<Object, Throwable>() {
    @Override
    public void accept(final Object o, final Throwable throwable) throws Exception {
      if (throwable != null) {
        atomicInteger.incrementAndGet();
      }
    }
  }).subscribe();
  assertEquals(1, atomicInteger.get());
}

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

@Test
public void doOnEventComplete() {
  final AtomicInteger atomicInteger = new AtomicInteger(0);
  Single.just(1).doOnEvent(new BiConsumer<Integer, Throwable>() {
    @Override
    public void accept(final Integer integer, final Throwable throwable) throws Exception {
      if (integer != null) {
        atomicInteger.incrementAndGet();
      }
    }
  }).subscribe();
  assertEquals(1, atomicInteger.get());
}

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

@Test(expected = NullPointerException.class)
public void doOnEventNullEvent() {
  Single.just(1).doOnEvent(null);
}

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

@Test
public void doOnEventThrowsSuccess() {
  Single.just(1)
  .doOnEvent(new BiConsumer<Integer, Throwable>() {
    @Override
    public void accept(Integer v, Throwable e) throws Exception {
      throw new TestException();
    }
  })
  .test()
  .assertFailure(TestException.class);
}

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

@Test
public void doOnEventThrowsError() {
  TestObserver<Integer> to = Single.<Integer>error(new TestException("Main"))
  .doOnEvent(new BiConsumer<Integer, Throwable>() {
    @Override
    public void accept(Integer v, Throwable e) throws Exception {
      throw new TestException("Inner");
    }
  })
  .test()
  .assertFailure(CompositeException.class);
  List<Throwable> errors = TestHelper.compositeList(to.errors().get(0));
  TestHelper.assertError(errors, 0, TestException.class, "Main");
  TestHelper.assertError(errors, 1, TestException.class, "Inner");
}

代码示例来源:origin: akarnokd/akarnokd-misc

@Test
  public void test2() {
    Flowable.just(Ix.range(0, 600))
    .flatMapIterable(x->x)
    .doOnNext(System.out::println)
    .share()
    .share()
    .count()
    .doOnEvent((a, b) -> {
      if (a != null) {
        System.out.println(a);
      } else {
        b.printStackTrace();
      }
    })
    .test()
    .assertResult(600L);
  }
}

代码示例来源:origin: akarnokd/akarnokd-misc

@Test
public void test() {
  Flowable.just(Ix.range(0, 300), Ix.range(0, 300))
  .flatMapIterable(x->x)
  .doOnNext(System.out::println)
  .share()
  .share()
  .count()
  .doOnEvent((a, b) -> {
    if (a != null) {
      System.out.println(a);
    } else {
      b.printStackTrace();
    }
  })
  .test()
  .assertResult(600L);
}

代码示例来源:origin: quanturium/bouquet

getMessageManager().printEvent(getComponentInfo(), RxEvent.SUBSCRIBE);
})
.doOnEvent((value, throwable) -> {
  if (value != null)
    emittedItems.increment();

相关文章

微信公众号

最新文章

更多