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

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

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

Single.delay介绍

[英]Delays the emission of the success signal from the current Single by the specified amount. An error signal will not be delayed. Scheduler: delay operates by default on the computation Scheduler.
[中]将当前信号的成功信号发射延迟指定量。错误信号不会延迟。调度程序:默认情况下,延迟在计算调度程序上运行。

代码示例

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

/**
 * Delays the emission of the success signal from the current Single by the specified amount.
 * An error signal will not be delayed.
 * <p>
 * <img width="640" height="457" src="https://raw.github.com/wiki/ReactiveX/RxJava/images/rx-operators/Single.delay.s.png" alt="">
 * <dl>
 * <dt><b>Scheduler:</b></dt>
 * <dd>you specify the {@link Scheduler} where the non-blocking wait and emission happens</dd>
 * </dl>
 *
 * @param time the amount of time the success signal should be delayed for
 * @param unit the time unit
 * @param scheduler the target scheduler to use for the non-blocking wait and emission
 * @return the new Single instance
 * @throws NullPointerException
 *             if unit is null, or
 *             if scheduler is null
 * @since 2.0
 */
@CheckReturnValue
@SchedulerSupport(SchedulerSupport.CUSTOM)
public final Single<T> delay(final long time, final TimeUnit unit, final Scheduler scheduler) {
  return delay(time, unit, scheduler, false);
}

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

@Test(expected = NullPointerException.class)
public void delayUnitNull() {
  just1.delay(1, null);
}

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

@Test(expected = NullPointerException.class)
public void delaySchedulerNull() {
  just1.delay(1, TimeUnit.SECONDS, null);
}

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

/**
 * Delays the emission of the success or error signal from the current Single by the specified amount.
 * <p>
 * <img width="640" height="457" src="https://raw.github.com/wiki/ReactiveX/RxJava/images/rx-operators/Single.delay.e.png" alt="">
 * <dl>
 * <dt><b>Scheduler:</b></dt>
 * <dd>{@code delay} operates by default on the {@code computation} {@link Scheduler}.</dd>
 * </dl>
 * <p>History: 2.1.5 - experimental
 * @param time the amount of time the success or error signal should be delayed for
 * @param unit the time unit
 * @param delayError if true, both success and error signals are delayed. if false, only success signals are delayed.
 * @return the new Single instance
 * @since 2.2
 */
@CheckReturnValue
@SchedulerSupport(SchedulerSupport.COMPUTATION)
public final Single<T> delay(long time, TimeUnit unit, boolean delayError) {
  return delay(time, unit, Schedulers.computation(), delayError);
}

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

/**
 * Delays the emission of the success signal from the current Single by the specified amount.
 * An error signal will not be delayed.
 * <p>
 * <img width="640" height="457" src="https://raw.github.com/wiki/ReactiveX/RxJava/images/rx-operators/Single.delay.png" alt="">
 * <dl>
 * <dt><b>Scheduler:</b></dt>
 * <dd>{@code delay} operates by default on the {@code computation} {@link Scheduler}.</dd>
 * </dl>
 *
 * @param time the amount of time the success signal should be delayed for
 * @param unit the time unit
 * @return the new Single instance
 * @since 2.0
 */
@CheckReturnValue
@SchedulerSupport(SchedulerSupport.COMPUTATION)
public final Single<T> delay(long time, TimeUnit unit) {
  return delay(time, unit, Schedulers.computation(), false);
}

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

@Override
  public Integer apply(Integer v) throws Exception {
    Single.just(1).delay(10, TimeUnit.SECONDS).blockingGet();
    return v;
  }
})

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

@Test
public void getAwait() throws Exception {
  Future<Integer> f = Single.just(1).delay(100, TimeUnit.MILLISECONDS).toFuture();
  assertEquals(1, f.get(5, TimeUnit.SECONDS).intValue());
}

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

@Test
public void testOnErrorCalledOnScheduler() throws Exception {
  final CountDownLatch latch = new CountDownLatch(1);
  final AtomicReference<Thread> thread = new AtomicReference<Thread>();
  Single.<String>error(new Exception())
      .delay(0, TimeUnit.MILLISECONDS, Schedulers.newThread())
      .doOnError(new Consumer<Throwable>() {
        @Override
        public void accept(Throwable throwable) throws Exception {
          thread.set(Thread.currentThread());
          latch.countDown();
        }
      })
      .onErrorResumeNext(Single.just(""))
      .subscribe();
  latch.await();
  assertNotEquals(Thread.currentThread(), thread.get());
}

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

@Test
public void delayOnError() {
  final TestScheduler scheduler = new TestScheduler();
  final TestObserver<?> observer = Single.error(new TestException())
    .delay(5, TimeUnit.SECONDS, scheduler)
    .test();
  scheduler.triggerActions();
  observer.assertError(TestException.class);
}

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

@Test
public void delayedErrorOnSuccess() {
  final TestScheduler scheduler = new TestScheduler();
  final TestObserver<Integer> observer = Single.just(1)
    .delay(5, TimeUnit.SECONDS, scheduler, true)
    .test();
  scheduler.advanceTimeTo(2, TimeUnit.SECONDS);
  observer.assertNoValues();
  scheduler.advanceTimeTo(5, TimeUnit.SECONDS);
  observer.assertValue(1);
}

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

@Test
public void delayOnSuccess() {
  final TestScheduler scheduler = new TestScheduler();
  final TestObserver<Integer> observer = Single.just(1)
    .delay(5, TimeUnit.SECONDS, scheduler)
    .test();
  scheduler.advanceTimeTo(2, TimeUnit.SECONDS);
  observer.assertNoValues();
  scheduler.advanceTimeTo(5, TimeUnit.SECONDS);
  observer.assertValue(1);
}

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

@Test
public void delayedErrorOnError() {
  final TestScheduler scheduler = new TestScheduler();
  final TestObserver<?> observer = Single.error(new TestException())
    .delay(5, TimeUnit.SECONDS, scheduler, true)
    .test();
  scheduler.advanceTimeTo(2, TimeUnit.SECONDS);
  observer.assertNoErrors();
  scheduler.advanceTimeTo(5, TimeUnit.SECONDS);
  observer.assertError(TestException.class);
}

代码示例来源:origin: trello/RxLifecycle

@Test
public void noEvents() {
  TestObserver<String> testObserver = Single.just("1")
    .delay(1, TimeUnit.MILLISECONDS, testScheduler)
    .compose(RxLifecycle.<String, String>bind(lifecycle, CORRESPONDING_EVENTS))
    .test();
  testObserver.assertNoValues();
  testScheduler.advanceTimeBy(1, TimeUnit.MILLISECONDS);
  testObserver.assertValue("1");
  testObserver.assertComplete();
}

代码示例来源:origin: trello/RxLifecycle

@Test
public void noEvent() {
  TestObserver<String> testObserver = Single.just("1")
    .delay(1, TimeUnit.MILLISECONDS, testScheduler)
    .compose(RxLifecycle.<String, String>bind(lifecycle))
    .test();
  testObserver.assertNoValues();
  testScheduler.advanceTimeBy(1, TimeUnit.MILLISECONDS);
  testObserver.assertValue("1");
  testObserver.assertComplete();
}

代码示例来源:origin: trello/RxLifecycle

@Test
public void noEvents() {
  TestObserver<String> testObserver = Single.just("1")
    .delay(1, TimeUnit.MILLISECONDS, testScheduler)
    .compose(RxLifecycle.<String, String>bindUntilEvent(lifecycle, "stop"))
    .test();
  testObserver.assertNoValues();
  testScheduler.advanceTimeBy(1, TimeUnit.MILLISECONDS);
  testObserver.assertValue("1");
  testObserver.assertComplete();
}

代码示例来源:origin: trello/RxLifecycle

@Test
public void oneStartEvent() {
  TestObserver<String> testObserver = Single.just("1")
    .delay(1, TimeUnit.MILLISECONDS, testScheduler)
    .compose(RxLifecycle.<String, String>bind(lifecycle, CORRESPONDING_EVENTS))
    .test();
  testObserver.assertNoValues();
  lifecycle.onNext("create");
  testScheduler.advanceTimeBy(1, TimeUnit.MILLISECONDS);
  testObserver.assertValue("1");
  testObserver.assertComplete();
}

代码示例来源:origin: trello/RxLifecycle

@Test
public void oneWrongEvent() {
  TestObserver<String> testObserver = Single.just("1")
    .delay(1, TimeUnit.MILLISECONDS, testScheduler)
    .compose(RxLifecycle.<String, String>bindUntilEvent(lifecycle, "stop"))
    .test();
  testObserver.assertNoValues();
  lifecycle.onNext("keep going");
  testScheduler.advanceTimeBy(1, TimeUnit.MILLISECONDS);
  testObserver.assertValue("1");
  testObserver.assertComplete();
}

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

@Test
public void andThenSingleSubscribeOn() {
  TestSubscriber<String> ts = new TestSubscriber<String>(0);
  TestScheduler scheduler = new TestScheduler();
  Completable.complete().andThen(Single.just("foo").delay(1, TimeUnit.SECONDS, scheduler)).toFlowable().subscribe(ts);
  ts.request(1);
  ts.assertNoValues();
  ts.assertNotTerminated();
  scheduler.advanceTimeBy(1, TimeUnit.SECONDS);
  ts.assertValue("foo");
  ts.assertComplete();
  ts.assertNoErrors();
}

代码示例来源:origin: trello/RxLifecycle

@Test
public void openAndCloseEvent() {
  TestObserver<String> testObserver = Single.just("1")
    .delay(1, TimeUnit.MILLISECONDS, testScheduler)
    .compose(RxLifecycle.<String, String>bind(lifecycle, CORRESPONDING_EVENTS))
    .test();
  lifecycle.onNext("create");
  testObserver.assertNoErrors();
  lifecycle.onNext("destroy");
  testScheduler.advanceTimeBy(1, TimeUnit.MILLISECONDS);
  testObserver.assertNoValues();
  testObserver.assertError(CancellationException.class);
}

代码示例来源:origin: trello/RxLifecycle

@Test
public void twoOpenEvents() {
  TestObserver<String> testObserver = Single.just("1")
    .delay(1, TimeUnit.MILLISECONDS, testScheduler)
    .compose(RxLifecycle.<String, String>bind(lifecycle, CORRESPONDING_EVENTS))
    .test();
  testObserver.assertNoValues();
  lifecycle.onNext("create");
  lifecycle.onNext("start");
  testScheduler.advanceTimeBy(1, TimeUnit.MILLISECONDS);
  testObserver.assertValue("1");
  testObserver.assertComplete();
}

相关文章

微信公众号

最新文章

更多