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