本文整理了Java中io.reactivex.Single.flatMap()
方法的一些代码示例,展示了Single.flatMap()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Single.flatMap()
方法的具体详情如下:
包路径:io.reactivex.Single
类名称:Single
方法名:flatMap
[英]Returns a Single that is based on applying a specified function to the item emitted by the source Single, where that function returns a SingleSource.
Scheduler: flatMap does not operate by default on a particular Scheduler.
[中]返回一个基于将指定函数应用于源Single发出的项的Single,其中该函数返回SingleSource。
调度程序:默认情况下,flatMap不会在特定调度程序上运行。
代码示例来源:origin: ReactiveX/RxJava
@Override
public SingleSource<Object> apply(Single<Object> s)
throws Exception {
return s.flatMap(new Function<Object, SingleSource<? extends Object>>() {
@Override
public SingleSource<? extends Object> apply(Object v)
throws Exception {
return Single.just(v);
}
});
}
});
代码示例来源:origin: Polidea/RxAndroidBle
@Override
public Single<byte[]> readCharacteristic(@NonNull UUID characteristicUuid) {
return getCharacteristic(characteristicUuid)
.flatMap(new Function<BluetoothGattCharacteristic, SingleSource<? extends byte[]>>() {
@Override
public SingleSource<? extends byte[]> apply(BluetoothGattCharacteristic characteristic) {
return readCharacteristic(characteristic);
}
});
}
代码示例来源:origin: Polidea/RxAndroidBle
@Override
public LongWriteOperationBuilder setCharacteristicUuid(@NonNull final UUID uuid) {
bluetoothGattCharacteristicObservable = discoverServices().flatMap(
new Function<RxBleDeviceServices, SingleSource<BluetoothGattCharacteristic>>() {
@Override
public SingleSource<BluetoothGattCharacteristic> apply(RxBleDeviceServices rxBleDeviceServices) {
return rxBleDeviceServices.getCharacteristic(uuid);
}
}
);
return this;
}
代码示例来源:origin: ReactiveX/RxJava
@Test(expected = NullPointerException.class)
public void flatMapNull() {
just1.flatMap(null);
}
代码示例来源:origin: ReactiveX/RxJava
@Test(expected = NullPointerException.class)
public void flatMapNull() {
Single.just(1)
.flatMap(null);
}
代码示例来源:origin: ReactiveX/RxJava
@Test(expected = NullPointerException.class)
public void flatMapFunctionReturnsNull() {
just1.flatMap(new Function<Integer, Single<Object>>() {
@Override
public Single<Object> apply(Integer v) {
return null;
}
}).blockingGet();
}
代码示例来源:origin: pockethub/PocketHub
@Override
protected Single<List<Repository>> loadData(boolean forceRefresh) {
User org = this.org.get();
if (org == null) {
return Single.just(Collections.emptyList());
}
return Single.fromCallable(() -> cache.getRepos(org, forceRefresh))
.flatMap(repos -> Observable.fromIterable(repos)
.sorted(recentRepos)
.toList());
}
代码示例来源:origin: ReactiveX/RxJava
@Test
public void flatMapError() {
RuntimeException exception = new RuntimeException("test");
Single.error(exception).flatMap(new Function<Object, SingleSource<Object>>() {
@Override public SingleSource<Object> apply(final Object integer) throws Exception {
return Single.just(new Object());
}
})
.test()
.assertError(exception);
}
代码示例来源:origin: pockethub/PocketHub
@Override
protected Single<List<IssueFilter>> loadData(boolean forceRefresh) {
return Single.fromCallable(() -> new ArrayList<>(cache.getIssueFilters()))
.flatMap(filters -> Observable.fromIterable(filters)
.sorted(FilterListFragment.this)
.toList());
}
代码示例来源:origin: ReactiveX/RxJava
@Test
public void dispose() {
TestHelper.checkDisposed(Single.just(1).flatMap(new Function<Integer, SingleSource<Integer>>() {
@Override
public SingleSource<Integer> apply(Integer v) throws Exception {
return Single.just(2);
}
}));
}
代码示例来源:origin: pockethub/PocketHub
/**
* Refresh the fragment's list.
*/
protected void refresh(boolean force) {
if (!isAdded() || isLoading) {
return;
}
if (dataLoadDisposable != null && !dataLoadDisposable.isDisposed()) {
dataLoadDisposable.dispose();
}
isLoading = true;
dataLoadDisposable = loadData(force)
.flatMap(items -> Observable.fromIterable(items)
.map(this::createItem)
.toList())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.as(AutoDisposeUtils.bindToLifecycle(this))
.subscribe(this::onDataLoaded, this::onDataLoadError);
}
代码示例来源:origin: ReactiveX/RxJava
@Test
public void mappedSingleOnError() {
Single.just(1).flatMap(new Function<Integer, SingleSource<Integer>>() {
@Override
public SingleSource<Integer> apply(Integer v) throws Exception {
return Single.error(new TestException());
}
})
.test()
.assertFailure(TestException.class);
}
代码示例来源:origin: ReactiveX/RxJava
@Test
public void flatMapValue() {
Single.just(1).flatMap(new Function<Integer, SingleSource<Integer>>() {
@Override public SingleSource<Integer> apply(final Integer integer) throws Exception {
if (integer == 1) {
return Single.just(2);
}
return Single.just(1);
}
})
.test()
.assertResult(2);
}
代码示例来源:origin: ReactiveX/RxJava
@Test
public void flatMapValueDifferentType() {
Single.just(1).flatMap(new Function<Integer, SingleSource<String>>() {
@Override public SingleSource<String> apply(final Integer integer) throws Exception {
if (integer == 1) {
return Single.just("2");
}
return Single.just("1");
}
})
.test()
.assertResult("2");
}
代码示例来源:origin: ReactiveX/RxJava
@Test
public void flatMapValueErrorThrown() {
Single.just(1).flatMap(new Function<Integer, SingleSource<Integer>>() {
@Override public SingleSource<Integer> apply(final Integer integer) throws Exception {
throw new RuntimeException("something went terribly wrong!");
}
})
.test()
.assertNoValues()
.assertError(RuntimeException.class)
.assertErrorMessage("something went terribly wrong!");
}
代码示例来源:origin: line/armeria
private static Single<String> nestSingle(String input) {
RequestContext.current();
return single(input).flatMap(RequestContextAssemblyTest::single);
}
代码示例来源:origin: ReactiveX/RxJava
@Test
public void singleSingle() throws Exception {
List<Throwable> errors = TestHelper.trackPluginErrors();
try {
TestObserver<Integer> to = Single.just(1)
.subscribeOn(Schedulers.io())
.flatMap(new Function<Integer, Single<Integer>>() {
@Override
public Single<Integer> apply(Integer v) throws Exception {
sleep();
return Single.<Integer>error(new TestException());
}
})
.test();
cb.await();
beforeCancelSleep(to);
to.cancel();
Thread.sleep(SLEEP_AFTER_CANCEL);
to.assertEmpty();
assertTrue(errors.toString(), errors.isEmpty());
} finally {
RxJavaPlugins.reset();
}
}
代码示例来源:origin: pockethub/PocketHub
public Single<FullTree> refresh() {
GitService gitService = ServiceGenerator.createService(context, GitService.class);
return getBranch(reference)
.map(branch -> branch.replace("heads/", ""))
.flatMap(branch -> getValidRef(gitService, reference, branch))
.flatMap(reference ->
gitService.getGitCommit(repo.owner().login(), repo.name(),
reference.object().sha())
.map(Response::body)
.zipWith(Single.just(reference), RefreshTreeModel::new))
.flatMap(model ->
gitService.getGitTreeRecursive(repo.owner().login(),
repo.name(), model.getCommit().tree().sha())
.map(Response::body)
.zipWith(Single.just(model.ref), FullTree::new));
}
代码示例来源:origin: ReactiveX/RxJava
@Test
public void flatMapValueNull() {
Single.just(1).flatMap(new Function<Integer, SingleSource<Integer>>() {
@Override public SingleSource<Integer> apply(final Integer integer) throws Exception {
return null;
}
})
.test()
.assertNoValues()
.assertError(NullPointerException.class)
.assertErrorMessage("The single returned by the mapper is null");
}
代码示例来源:origin: ReactiveX/RxJava
@Test
public void testFlatMap() {
TestSubscriber<String> ts = new TestSubscriber<String>();
Single.just("Hello").flatMap(new Function<String, Single<String>>() {
@Override
public Single<String> apply(String s) {
return Single.just(s + " World!").subscribeOn(Schedulers.computation());
}
}
).toFlowable().subscribe(ts);
if (!ts.awaitTerminalEvent(5, TimeUnit.SECONDS)) {
ts.cancel();
Assert.fail("TestSubscriber timed out.");
}
ts.assertValueSequence(Arrays.asList("Hello World!"));
}
内容来源于网络,如有侵权,请联系作者删除!