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

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

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

Single.fromObservable介绍

[英]Wraps a specific ObservableSource into a Single and signals its single element or error.

If the ObservableSource is empty, a NoSuchElementException is signalled. If the source has more than one element, an IndexOutOfBoundsException is signalled. Scheduler: fromObservable does not operate by default on a particular Scheduler.
[中]将一个特定的可观察资源包装成一个单独的元素,并发出其单个元素或错误的信号。
如果ObservableSource为空,则会发出NosTouchElementException信号。如果源有多个元素,则会发出IndexOutOfBoundsException信号。调度程序:默认情况下,fromObservable不会在特定调度程序上运行。

代码示例

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

@Test(expected = NullPointerException.class)
public void fromObservableNull() {
  Single.fromObservable(null);
}

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

@Test
public void fromObservableOneElement() {
  Single.fromObservable(Observable.just(1))
    .test()
    .assertResult(1);
}

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

@Test
public void fromObservableMoreThan1Elements() {
  Single.fromObservable(Observable.just(1, 2))
    .test()
    .assertFailure(IllegalArgumentException.class)
    .assertErrorMessage("Sequence contains more than one element!");
}

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

@Test
public void fromObservableError() {
  Single.fromObservable(Observable.error(new RuntimeException("some error")))
    .test()
    .assertFailure(RuntimeException.class)
    .assertErrorMessage("some error");
}

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

@Test
public void fromObservableEmpty() {
  Single.fromObservable(Observable.empty())
    .test()
    .assertFailure(NoSuchElementException.class);
}

代码示例来源:origin: GDGAhmedabad/Learning-Resources

/**
 * @param observable make it via ApiClient.getClient().create(Class_Name).method()
 * @return Single which helps in adding other functions like flatMap(), filter()
 */
public static <T> Single<T> makeSingle(Observable<T> observable) {
  return Single.fromObservable(observable)
      .observeOn(AndroidSchedulers.mainThread())
      .subscribeOn(Schedulers.io());
}

代码示例来源:origin: TrustWallet/trust-wallet-android-source

@Override
  public Single<Ticker> getTicker() {
    return Single.fromObservable(tickerService
        .fetchTickerPrice(getDefaultNetwork().symbol));
  }
}

代码示例来源:origin: VictorAlbertos/ReactiveCache

/**
 * Same as {@link ProviderGroup#replace(Object)} but wrap the data in a Reply object for debug
 * purposes.
 */
public final SingleTransformer<T, Reply<T>> replaceAsReply(final Object group) {
 return loader ->
   loader.flatMap(data -> Single.fromObservable(builder.processorProviders
     .process(getConfigProvider(Observable.just(data), group.toString(),
       new EvictDynamicKeyGroup(true), true, null))));
}

代码示例来源:origin: VictorAlbertos/ReactiveCache

/**
 * Replace the cached data by group based on the element emitted from the loader.
 */
public final SingleTransformer<T, T> replace(final Object group) {
 return loader ->
   loader.flatMap(data -> Single.fromObservable(builder.processorProviders
     .process(getConfigProvider(Observable.just(data), group.toString(),
       new EvictDynamicKeyGroup(true), false, null))));
}

代码示例来源:origin: VictorAlbertos/ReactiveCache

/**
 * Same as {@link Provider#replace()} but wrap the data in a Reply object for debug purposes.
 */
public final SingleTransformer<T, Reply<T>> replaceAsReply() {
 return loader ->
   loader.flatMap(data -> Single.fromObservable(builder.processorProviders
     .process(getConfigProvider(Observable.just(data), new EvictDynamicKey(true), true,
       null))));
}

代码示例来源:origin: VictorAlbertos/ReactiveCache

/**
 * Same as {@link ProviderGroup#readWithLoader(Object)} but wrap the data in a Reply object for
 * debug purposes.
 */
public final SingleTransformer<T, Reply<T>> readWithLoaderAsReply(final Object group) {
 return loader -> Single.fromObservable(builder.processorProviders
   .process(getConfigProvider(loader.toObservable(), group.toString(), new EvictDynamicKeyGroup(false),
     true, null)));
}

代码示例来源:origin: VictorAlbertos/ReactiveCache

/**
 * Read from cache by group but if there is not data available then read from the loader and cache
 * its element.
 */
public final SingleTransformer<T, T> readWithLoader(final Object group) {
 return loader -> Single.fromObservable(builder.processorProviders
   .process(getConfigProvider(loader.toObservable(), group.toString(),
     new EvictDynamicKeyGroup(false), false, null)));
}

代码示例来源:origin: VictorAlbertos/ReactiveCache

/**
 * Replace the cached data by the element emitted from the loader.
 */
public final SingleTransformer<T, T> replace() {
 return loader ->
   loader.flatMap(data -> Single.fromObservable(builder.processorProviders
     .process(getConfigProvider(Observable.just(data),
       new EvictDynamicKey(true), false, null))));
}

代码示例来源:origin: VictorAlbertos/ReactiveCache

/**
 * Read from cache but if there is not data available then read from the loader and cache its
 * element.
 */
public final SingleTransformer<T, T> readWithLoader() {
 return loader ->
   Single.fromObservable(builder.processorProviders
     .process(getConfigProvider(loader.toObservable(),
       new EvictDynamicKey(false), false, null)));
}

代码示例来源:origin: VictorAlbertos/ReactiveCache

/**
 * Same as {@link Provider#readWithLoader()} but wrap the data in a Reply object for debug
 * purposes.
 */
public final SingleTransformer<T, Reply<T>> readWithLoaderAsReply() {
 return loader -> Single.fromObservable(builder.processorProviders
   .process(getConfigProvider(loader.toObservable(), new EvictDynamicKey(false), true, null)));
}

代码示例来源:origin: VictorAlbertos/ReactiveCache

/**
 * Read from cache by group and throw if no data is available.
 */
public final Single<T> read(final Object group) {
 return Single.defer(() ->
   Single.fromObservable(builder.processorProviders
     .<T>process(getConfigProvider(exceptionAdapter.placeholderLoader(), group.toString(),
       new EvictDynamicKeyGroup(false), false, null))))
   .onErrorResumeNext(exceptionAdapter::stripPlaceholderLoaderException);
}

代码示例来源:origin: VictorAlbertos/ReactiveCache

<E> Single<E> stripPlaceholderLoaderException(Throwable error) {
 if (!(error instanceof CompositeException)) return Single.error(error);
 return Single.fromObservable(Observable.just(((CompositeException)error).getExceptions())
   .flatMapIterable(errors -> errors)
   .filter(e -> !(e instanceof PlaceHolderLoader))
   .toList().toObservable()
   .flatMap(curatedErrors -> {
    if (curatedErrors.size() == 1) return Observable.error(curatedErrors.get(0));
    else return Observable.error(new CompositeException(curatedErrors));
   }));
}

代码示例来源:origin: VictorAlbertos/ReactiveCache

/**
 * Read from cache and throw if no data is available.
 */
public final Single<T> read() {
 return Single.defer(() ->
   Single.fromObservable(builder.processorProviders
     .<T>process(getConfigProvider(exceptionAdapter.placeholderLoader(),
       new EvictDynamicKey(false), false, null))))
   .onErrorResumeNext(exceptionAdapter::stripPlaceholderLoaderException);
}

相关文章

微信公众号

最新文章

更多