rx.Single.subscribeOn()方法的使用及代码示例

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

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

Single.subscribeOn介绍

暂无

代码示例

代码示例来源:origin: mercyblitz/segmentfault-lessons

private static void demoSingle() {
  Single.just("Hello,World") // 仅能发布单个数据
      .subscribeOn(Schedulers.io()) // 在 I/O 线程执行
      .subscribe(RxJavaDemo::println) // 订阅并且消费数据
  ;
}

代码示例来源:origin: codependent/spring-nio-rest

@GetMapping(value="/hystrix/data", produces="application/json")
@ApiOperation(value = "Gets data hystrix", notes="Gets data asynchronously with hystrix")
@ApiResponses(value={@ApiResponse(code=200, message="OK")})
public Single<List<Data>> getDataHystrix(){
  Observable<List<Data>> observable = dataService.loadDataHystrix();
  //XXX subscribeOn es necesario, si no se haría en el hilo http
  return observable.toSingle().subscribeOn(scheduler);
}

代码示例来源:origin: codependent/spring-nio-rest

@GetMapping(value="/observable/data", produces="application/json")
@ApiOperation(value = "Gets data through Observable returning Observable", notes="Gets data asynchronously through Observable returning Observable")
@ApiResponses(value={@ApiResponse(code=200, message="OK")})
public Single<List<Data>> getDataObservable2(){
  Observable<List<Data>> dataObservable = dataService.loadDataObservable();
  //XXX subscribeOn es necesario, si no se haría en el hilo http
  return dataObservable.toSingle().subscribeOn(scheduler);
}

代码示例来源:origin: com.pushtorefresh.storio/sqlite

@CheckResult
@NonNull
public static <T> Single<T> subscribeOn(
    @NonNull StorIOSQLite storIOSQLite,
    @NonNull Single<T> single
) {
  final Scheduler scheduler = storIOSQLite.defaultScheduler();
  return scheduler != null ? single.subscribeOn(scheduler) : single;
}

代码示例来源:origin: Sinarahimi/MovieInfo

public LiveData<List<Movie>> getMovies() {
    Single<Response<SearchResult>> resultObservable = movieApi.getMovieList();
    resultObservable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(searchResult -> {
      if (!searchResult.isSuccessful()) {
        Log.i("Repository", "not respond");
      } else {
        movieDatabaseHelper.save(searchResult.body().getSearch());
      }
    }, throwable -> Log.i("Repository", throwable.getMessage()));

    return movieDatabaseHelper.getAll();
  }
}

代码示例来源:origin: Sinarahimi/MovieInfo

public static <T> void request(Single<Response<T>> single, ApiListener<T> listener) {
  single.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe((Response<T> tResponse) -> {
    if (tResponse.isSuccessful()) {
      listener.onSuccess(tResponse.body());
    } else {
      listener.onServerError(tResponse.errorBody().toString());
    }
  }, listener::onError);
}

代码示例来源:origin: jakehilborn/speedr

private void fetchOverpassLimit(final Double lat, final Double lon) {
  if (overpassSubscription != null) return; //Active request to Overpass has not responded yet
  String data = "[out:json];way(around:" +
      RADIUS + "," + lat + "," + lon +
      ")[\"highway\"][\"maxspeed\"];out;";
  overpassSubscription = overpassService.getLimit(data)
      .subscribeOn(Schedulers.io())
      .observeOn(AndroidSchedulers.mainThread())
      .subscribe(new SingleSubscriber<OverpassResponse>() {
        @Override
        public void onSuccess(OverpassResponse overpassResponse) {
          overpassSubscription = null;
          overpassManager.handleResponse(overpassResponse, lat, lon);
        }
        @Override
        public void onError(Throwable error) {
          overpassSubscription = null;
          //Error was already logged in OverpassInterceptor
        }
      });
}

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

Single<String> content(int id) {
  return Single.fromCallable(() -> jdbcTemplate
      .queryForObject(
          "SELECT content FROM articles WHERE id = ?",
          String.class, id))
      .subscribeOn(Schedulers.io());
}

代码示例来源:origin: hitherejoe/AndroidTvBoilerplate

public void getCats(List<Cat> cats) {
  checkViewAttached();
  mSubscription = mDataManager.getCats(cats)
      .observeOn(AndroidSchedulers.mainThread())
      .subscribeOn(Schedulers.io())
      .subscribe(new SingleSubscriber<List<Cat>>() {
        @Override
        public void onSuccess(List<Cat> cats) {
          getMvpView().showCats(cats);
        }
        @Override
        public void onError(Throwable error) {
          getMvpView().showCatsError();
          Timber.e(error, "There was an error loading the cats!");
        }
      });
}

代码示例来源:origin: hitherejoe/AndroidTvBoilerplate

public void searchCats(List<Cat> cats) {
  checkViewAttached();
  mSubscription = mDataManager.getCats(cats)
      .observeOn(AndroidSchedulers.mainThread())
      .subscribeOn(Schedulers.io())
      .subscribe(new SingleSubscriber<List<Cat>>() {
        @Override
        public void onSuccess(List<Cat> cats) {
          getMvpView().showCats(cats);
        }
        @Override
        public void onError(Throwable error) {
          getMvpView().showCatsError();
          Timber.e(error, "There was an error loading the cats!");
        }
      });
}

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

public static Single<String> getDataB() {
  return Single.just("DataB")
      .subscribeOn(Schedulers.io());
}

代码示例来源:origin: Petikoch/Java_MVVM_with_Swing_and_RxJava_Examples

public Single<FinishedIndicator> createAccount(NameFirstname nameFirstname) {
  return Single.fromCallable(() -> {
    try {
      SysOutUtils.sysout("Processing: " + nameFirstname.toString());
      Thread.sleep(5000);    // = Simulation of a "very slow" backend
      SysOutUtils.sysout("Finished: " + nameFirstname.toString());
    } catch (InterruptedException e) {
      SysOutUtils.sysout("Interrupted (=cancelled) -> good!");
    }
    return FinishedIndicator.INSTANCE;
  }).subscribeOn(Schedulers.io());
}

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

public static Single<String> getDataA() {
  return Single.<String> create(o -> {
    o.onSuccess("DataA");
  }).subscribeOn(Schedulers.io());
}

代码示例来源:origin: quebic-source/microservices-sample-project

}).subscribeOn(Schedulers.io());

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

@Test
  public void test() {
    getList()
    .subscribeOn(Schedulers.io())
    .flatMapObservable(list -> Observable.from(list))
    .flatMap(each -> getSubdetails(each))
    .subscribe(new Subscriber<Boolean>() {
      @Override
      public void onNext(Boolean t) {
      }
      @Override
      public void onError(Throwable error) {
      } 
      @Override
      public void onCompleted() {
      }
    });
  }
}

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

private Observable<String> createProblematicObservable() {
  return Observable.<String>fromCallable(() -> {
      throw new IllegalStateException();
    })
    .toSingle()
    .subscribeOn(scheduler)
    .toObservable()
    .onErrorResumeNext(caughtError -> {
      return Observable.just("OK");
    });
}

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

@Test
  public void test() throws Exception {
    Single.fromCallable(() -> 42)
    .subscribeOn(Schedulers.io())
    .observeOn(Schedulers.computation())
    .doOnSubscribe(() -> System.out.println("subscribed"))
    .doOnUnsubscribe(() -> System.out.println("unsubscribed"))
    .subscribe(integer -> System.out.println("got result"));

    Thread.sleep(1000);
  }
}

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

@Test
public void test() throws Exception {
  Observable.fromCallable(() -> { throw new IOException(); })
  .toSingle()
  .subscribeOn(Schedulers.computation())
  .toObservable()
  .toSingle()
  .onErrorResumeNext(v -> Single.just(1))
  .subscribe(System.out::println, Throwable::printStackTrace);
  Thread.sleep(1000);
}

代码示例来源:origin: Petikoch/Java_MVVM_with_Swing_and_RxJava_Examples

@Override
  public void connectTo(final Example_5_Model model) {
    onEventFrom(vm2m_nameFirstname).executeAsync(nameFirstname -> {

      Single<Boolean> modelCallFinished = Single.<Boolean>create(singleSubscriber -> {
        try {
          model.createAccount(nameFirstname);
          if (!singleSubscriber.isUnsubscribed()) {
            singleSubscriber.onSuccess(true);
          }
        } catch (InterruptedException e) {
          SysOutUtils.sysout("Interrupted (=cancelled) -> good!");
        }
      }).subscribeOn(Schedulers.io());

      Single.merge(modelCallFinished, v2vm_cancelButtonEvents.first().toSingle())
          .toBlocking()
          .first();

      vm2v_nameEnabled.onNext(true);
      vm2v_firstnameEnabled.onNext(true);
      vm2v_submitButtonEnabled.onNext(true);
      vm2v_cancelButtonEnabled.onNext(false);
    });
  }
}

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

@Test
  public void plainSubscribeCheck() {
    Single.<String>fromCallable(() -> {
      throw new IllegalStateException();
    })
    .subscribeOn(Schedulers.immediate())
    .toObservable()
    .onErrorResumeNext(throwable -> Observable.empty())
    .subscribe(new TestSubscriber<>());

    Observable.<String>fromCallable(() -> {
      throw new IllegalStateException();
    })
    .subscribeOn(Schedulers.immediate())
    .onErrorResumeNext(throwable -> Observable.empty())
    .subscribe(new TestSubscriber<>());
  }
}

相关文章