rx.Observable.delaySubscription()方法的使用及代码示例

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

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

Observable.delaySubscription介绍

[英]Returns an Observable that delays the subscription to the source Observable by a given amount of time.

Scheduler: This version of delay operates by default on the compuation Scheduler.
[中]返回一个Observable,它将订阅源Observable延迟一段给定的时间。
调度程序:默认情况下,此版本的延迟在计算调度程序上运行。

代码示例

代码示例来源:origin: leeowenowen/rxjava-examples

  1. @Override
  2. public void run() {
  3. Observable.just(1, 2)
  4. .delaySubscription(2, TimeUnit.SECONDS)
  5. .subscribe(new Action1<Integer>() {
  6. @Override
  7. public void call(Integer integer) {
  8. log(integer);
  9. }
  10. });
  11. }
  12. });

代码示例来源:origin: groupon/grox

  1. private Observable<Integer> getColorFromServer() {
  2. final Observable<Integer> result;
  3. if (random.nextInt() % ERROR_RATE == 0) {
  4. result = error(new RuntimeException(ERROR_MSG));
  5. } else {
  6. final int red = random.nextInt(MAX_COLOR);
  7. final int green = random.nextInt(MAX_COLOR);
  8. final int blue = random.nextInt(MAX_COLOR);
  9. final int color = rgb(red, green, blue);
  10. result = just(color);
  11. }
  12. return result.delaySubscription(LATENCY_IN_MS, TimeUnit.MILLISECONDS);
  13. }
  14. }

代码示例来源:origin: com.netflix.rxjava/rxjava-core

  1. /**
  2. * Returns an Observable that delays the subscription to the source Observable by a given amount of time.
  3. * <p>
  4. * <img width="640" height="310" src="https://raw.github.com/wiki/Netflix/RxJava/images/rx-operators/delaySubscription.png" alt="">
  5. * <dl>
  6. * <dt><b>Scheduler:</b></dt>
  7. * <dd>This version of {@code delay} operates by default on the {@code compuation} {@link Scheduler}.</dd>
  8. * </dl>
  9. *
  10. * @param delay
  11. * the time to delay the subscription
  12. * @param unit
  13. * the time unit of {@code delay}
  14. * @return an Observable that delays the subscription to the source Observable by the given amount
  15. * @see <a href="https://github.com/Netflix/RxJava/wiki/Observable-Utility-Operators#delaysubscription">RxJava wiki: delaySubscription</a>
  16. */
  17. public final Observable<T> delaySubscription(long delay, TimeUnit unit) {
  18. return delaySubscription(delay, unit, Schedulers.computation());
  19. }

代码示例来源:origin: cookpad/RxT4A

  1. @Test
  2. public void shouldNotCallOnSubscribeWhenSubscriptionUnsubscribedBeforeDelay() {
  3. Observable.OnSubscribe<Integer> onSubscribe = mock(Observable.OnSubscribe.class);
  4. Handler handler = spy(new Handler());
  5. final Worker worker = spy(new HandlerScheduler.HandlerWorker(handler));
  6. Scheduler scheduler = new Scheduler() {
  7. @Override
  8. public Worker createWorker() {
  9. return worker;
  10. }
  11. };
  12. Subscription subscription = Observable.create(onSubscribe)
  13. .delaySubscription(1, MINUTES, scheduler)
  14. .subscribe();
  15. verify(worker).schedule(any(Action0.class), eq(1L), eq(MINUTES));
  16. verify(handler).postDelayed(any(Runnable.class), eq(MINUTES.toMillis(1)));
  17. subscription.unsubscribe();
  18. ShadowLooper.runUiThreadTasksIncludingDelayedTasks();
  19. verify(onSubscribe, never()).call(any(Subscriber.class));
  20. verify(handler).removeCallbacks(any(Runnable.class));
  21. }
  22. }

代码示例来源:origin: com.netflix.iep/iep-rxhttp

  1. @Override
  2. public Observable<HttpClientResponse<ByteBuf>> call(HttpClientResponse<ByteBuf> res) {
  3. final int code = res.getStatus().code();
  4. Observable<HttpClientResponse<ByteBuf>> resObs;
  5. if (code == 429 || code == 503) {
  6. final long retryDelay = getRetryDelay(res, delay);
  7. res.getContent().subscribe();
  8. context.entry().withAttempt(attempt);
  9. resObs = context.rxHttp().execute(context);
  10. if (retryDelay > 0) {
  11. resObs = resObs.delaySubscription(retryDelay, TimeUnit.MILLISECONDS);
  12. }
  13. } else if (code >= 500) {
  14. res.getContent().subscribe();
  15. context.entry().withAttempt(attempt);
  16. resObs = context.rxHttp().execute(context);
  17. } else {
  18. resObs = Observable.just(res);
  19. }
  20. return resObs;
  21. }
  22. }

相关文章

Observable类方法