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

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

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

Single.onErrorReturnItem介绍

[英]Signals the specified value as success in case the current Single signals an error. Scheduler: onErrorReturnItem does not operate by default on a particular Scheduler.
[中]如果当前单一信号显示错误,则将指定值表示为成功。Scheduler:onErrorReturnItem默认情况下不会在特定的计划程序上运行。

代码示例

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

@Test(expected = NullPointerException.class)
public void onErrorReturnValueNull() {
  error.onErrorReturnItem(null);
}

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

@Test
public void returnSuccess() {
  Single.just(1)
  .onErrorReturnItem(2)
  .test()
  .assertResult(1);
}

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

@Test
public void onErrorReturnValue() {
  Single.<Integer>error(new TestException())
  .onErrorReturnItem(1)
  .test()
  .assertResult(1);
}

代码示例来源:origin: TeamNewPipe/NewPipe

/**
 * Helper method to fetch the sizes of all the streams in a wrapper.
 *
 * @param streamsWrapper the wrapper
 * @return a {@link Single} that returns a boolean indicating if any elements were changed
 */
public static <X extends Stream> Single<Boolean> fetchSizeForWrapper(StreamSizeWrapper<X> streamsWrapper) {
  final Callable<Boolean> fetchAndSet = () -> {
    boolean hasChanged = false;
    for (X stream : streamsWrapper.getStreamsList()) {
      if (streamsWrapper.getSizeInBytes(stream) > -2) {
        continue;
      }
      final long contentLength = Downloader.getInstance().getContentLength(stream.getUrl());
      streamsWrapper.setSize(stream, contentLength);
      hasChanged = true;
    }
    return hasChanged;
  };
  return Single.fromCallable(fetchAndSet)
      .subscribeOn(Schedulers.io())
      .observeOn(AndroidSchedulers.mainThread())
      .onErrorReturnItem(true);
}

代码示例来源:origin: eneim/toro

void refresh() throws IOException {
  Disposable disposable = //
    Observable.just(ytApi.playlistItems()
      .list(YOUTUBE_PLAYLIST_PART)
      .setPlaylistId(YOUTUBE_PLAYLIST_ID)
      .setPageToken(null)
      .setFields(YOUTUBE_PLAYLIST_FIELDS)
      .setMaxResults(YOUTUBE_PLAYLIST_MAX_RESULTS)
      .setKey(API_KEY)  //
    )
      .map(AbstractGoogleClientRequest::execute)
      .map(PlaylistItemListResponse::getItems)
      .flatMap(playlistItems -> Observable.fromIterable(playlistItems)
        .map(item -> item.getSnippet().getResourceId().getVideoId()))
      .toList()
      .map(ids -> ytApi.videos().list(YOUTUBE_VIDEOS_PART).setFields(YOUTUBE_VIDEOS_FIELDS) //
        .setKey(API_KEY).setId(TextUtils.join(",", ids)).execute())
      .subscribeOn(Schedulers.io())
      .observeOn(AndroidSchedulers.mainThread())
      .doOnError(
        throwable -> Log.e(TAG, "accept() called with: throwable = [" + throwable + "]"))
      .doOnSuccess(
        response -> Log.d(TAG, "accept() called with: response = [" + response + "]"))
      .onErrorReturnItem(new VideoListResponse()) // Bad work around
      .doOnSuccess(liveData::setValue)
      .subscribe();
  disposables.add(disposable);
 }
}

代码示例来源:origin: gentics/mesh

@Override
public Single<Boolean> isAvailable() {
  try {
    return client.clusterHealth().async()
      .timeout(1, TimeUnit.SECONDS)
      .map(ignore -> true)
      .onErrorReturnItem(false);
  } catch (HttpErrorException e) {
    return Single.just(false);
  }
}

代码示例来源:origin: d4rken/RxShell

static Single<List<String>> makeMiniHarvester(InputStream inputStream) {
  return Observable
      .create((ObservableOnSubscribe<String>) emitter -> {
        BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
        LineReader lineReader = new LineReader();
        String line;
        try {
          while ((line = lineReader.readLine(reader)) != null && !emitter.isDisposed()) {
            emitter.onNext(line);
          }
        } catch (IOException e) {
          if (RXSDebug.isDebug()) Timber.tag(TAG).d("MiniHarvester read error: %s", e.getMessage());
        } finally {
          emitter.onComplete();
        }
      })
      .doOnEach(n -> { if (RXSDebug.isDebug()) Timber.tag(TAG).v("miniHarvesters:doOnEach %s", n); })
      .subscribeOn(Schedulers.io())
      .toList()
      .onErrorReturnItem(new ArrayList<>())
      .cache();
}

相关文章

微信公众号

最新文章

更多