本文整理了Java中io.reactivex.Single.delay()
方法的一些代码示例,展示了Single.delay()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Single.delay()
方法的具体详情如下:
包路径:io.reactivex.Single
类名称: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();
}
内容来源于网络,如有侵权,请联系作者删除!