本文整理了Java中io.reactivex.Single.flatMapMaybe()
方法的一些代码示例,展示了Single.flatMapMaybe()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Single.flatMapMaybe()
方法的具体详情如下:
包路径:io.reactivex.Single
类名称:Single
方法名:flatMapMaybe
[英]Returns a Maybe that is based on applying a specified function to the item emitted by the source Single, where that function returns a MaybeSource.
Scheduler: flatMapMaybe does not operate by default on a particular Scheduler.
[中]返回一个MaybeSource,该函数基于将指定函数应用于源Single发出的项,其中该函数返回一个MaybeSource。
调度器:FlatMap默认情况下可能不会在特定的调度器上运行。
代码示例来源:origin: ReactiveX/RxJava
@Override
public MaybeSource<Integer> apply(Single<Integer> v) throws Exception {
return v.flatMapMaybe(new Function<Integer, MaybeSource<Integer>>() {
@Override
public MaybeSource<Integer> apply(Integer v) throws Exception {
return Maybe.just(1);
}
});
}
});
代码示例来源:origin: ReactiveX/RxJava
@Test(expected = NullPointerException.class)
public void flatMapMaybeNull() {
Single.just(1)
.flatMapMaybe(null);
}
代码示例来源:origin: ReactiveX/RxJava
@Test
public void flatMapMaybeError() {
RuntimeException exception = new RuntimeException("test");
Single.error(exception).flatMapMaybe(new Function<Object, MaybeSource<Object>>() {
@Override public MaybeSource<Object> apply(final Object integer) throws Exception {
return Maybe.just(new Object());
}
})
.test()
.assertError(exception);
}
代码示例来源:origin: ReactiveX/RxJava
@Test
public void dispose() {
TestHelper.checkDisposed(Single.just(1).flatMapMaybe(new Function<Integer, MaybeSource<Integer>>() {
@Override
public MaybeSource<Integer> apply(Integer v) throws Exception {
return Maybe.just(1);
}
}));
}
代码示例来源:origin: ReactiveX/RxJava
@Test
public void mapsToEmpty() {
Single.just(1).flatMapMaybe(new Function<Integer, MaybeSource<Integer>>() {
@Override
public MaybeSource<Integer> apply(Integer v) throws Exception {
return Maybe.empty();
}
})
.test()
.assertResult();
}
}
代码示例来源:origin: ReactiveX/RxJava
@Test
public void mapsToError() {
Single.just(1).flatMapMaybe(new Function<Integer, MaybeSource<Integer>>() {
@Override
public MaybeSource<Integer> apply(Integer v) throws Exception {
return Maybe.error(new TestException());
}
})
.test()
.assertFailure(TestException.class);
}
代码示例来源:origin: ReactiveX/RxJava
@Test
public void flatMapMaybeValueDifferentType() {
Single.just(1).flatMapMaybe(new Function<Integer, MaybeSource<String>>() {
@Override public MaybeSource<String> apply(final Integer integer) throws Exception {
if (integer == 1) {
return Maybe.just("2");
}
return Maybe.just("1");
}
})
.test()
.assertResult("2");
}
代码示例来源:origin: ReactiveX/RxJava
@Test
public void flatMapMaybeValue() {
Single.just(1).flatMapMaybe(new Function<Integer, MaybeSource<Integer>>() {
@Override public MaybeSource<Integer> apply(final Integer integer) throws Exception {
if (integer == 1) {
return Maybe.just(2);
}
return Maybe.just(1);
}
})
.test()
.assertResult(2);
}
代码示例来源:origin: ReactiveX/RxJava
@Test
public void flatMapMaybeValueErrorThrown() {
Single.just(1).flatMapMaybe(new Function<Integer, MaybeSource<Integer>>() {
@Override public MaybeSource<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: ReactiveX/RxJava
@Test
public void singleMaybe() throws Exception {
List<Throwable> errors = TestHelper.trackPluginErrors();
try {
TestObserver<Integer> to = Single.just(1)
.subscribeOn(Schedulers.io())
.flatMapMaybe(new Function<Integer, Maybe<Integer>>() {
@Override
public Maybe<Integer> apply(Integer v) throws Exception {
sleep();
return Maybe.<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: ReactiveX/RxJava
@Test
public void flatMapMaybeValueNull() {
Single.just(1).flatMapMaybe(new Function<Integer, MaybeSource<Integer>>() {
@Override public MaybeSource<Integer> apply(final Integer integer) throws Exception {
return null;
}
})
.test()
.assertNoValues()
.assertError(NullPointerException.class)
.assertErrorMessage("The mapper returned a null MaybeSource");
}
代码示例来源:origin: io.gravitee.am.gateway.handlers/gravitee-am-gateway-handler
@Override
public Single<Token> grant(TokenRequest tokenRequest, Client client) {
return parseRequest(tokenRequest, client)
.flatMapMaybe(tokenRequest1 -> resolveResourceOwner(tokenRequest1, client))
.map(user -> Optional.of(user))
.defaultIfEmpty(Optional.empty())
.flatMapSingle(user -> handleRequest(tokenRequest, client, user.isPresent() ? user.get() : null));
}
代码示例来源:origin: gravitee-io/graviteeio-access-management
@Override
public Single<Token> grant(TokenRequest tokenRequest, Client client) {
return parseRequest(tokenRequest, client)
.flatMapMaybe(tokenRequest1 -> resolveResourceOwner(tokenRequest1, client))
.map(user -> Optional.of(user))
.defaultIfEmpty(Optional.empty())
.flatMapSingle(user -> handleRequest(tokenRequest, client, user.isPresent() ? user.get() : null));
}
代码示例来源:origin: com.microsoft.azure/azure-storage-blob
/**
* Retrieves statistics related to replication for the Blob service. It is only available on the secondary location endpoint when read-access geo-redundant replication is enabled for the storage account.
*
* @param context The context to associate with this operation.
* @param timeout The timeout parameter is expressed in seconds. For more information, see <a href="https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/setting-timeouts-for-blob-service-operations">Setting Timeouts for Blob Service Operations.</a>.
* @param requestId Provides a client-generated, opaque value with a 1 KB character limit that is recorded in the analytics logs when storage analytics logging is enabled.
* @throws IllegalArgumentException thrown if parameters fail the validation.
* @return a Single which performs the network request upon subscription.
*/
public Maybe<StorageServiceStats> getStatisticsAsync(Context context, Integer timeout, String requestId) {
return getStatisticsWithRestResponseAsync(context, timeout, requestId)
.flatMapMaybe((ServiceGetStatisticsResponse res) -> res.body() == null ? Maybe.empty() : Maybe.just(res.body()));
}
代码示例来源:origin: io.gravitee.am.gateway.handlers/gravitee-am-gateway-handler
@Override
public Maybe<Token> getAccessToken(String token, Client client) {
return jwtService.decodeAndVerify(token, client)
.onErrorResumeNext(ex -> {
if (ex instanceof JwtException) {
return Single.error(new InvalidTokenException(ex.getMessage(), ex));
}
return Single.error(ex);
})
.flatMapMaybe(jwt -> accessTokenRepository.findByToken(jwt.getJti()).map(accessToken -> convertAccessToken(jwt)));
}
代码示例来源:origin: gravitee-io/graviteeio-access-management
@Override
public Maybe<Token> getRefreshToken(String refreshToken, Client client) {
return jwtService.decodeAndVerify(refreshToken, client)
.onErrorResumeNext(ex -> {
if (ex instanceof JwtException) {
return Single.error(new InvalidTokenException(ex.getMessage(), ex));
}
return Single.error(ex);
})
.flatMapMaybe(jwt -> refreshTokenRepository.findByToken(jwt.getJti()).map(refreshToken1 -> convertRefreshToken(jwt)));
}
代码示例来源:origin: io.gravitee.am.gateway.handlers/gravitee-am-gateway-handler
@Override
public Maybe<Token> getRefreshToken(String refreshToken, Client client) {
return jwtService.decodeAndVerify(refreshToken, client)
.onErrorResumeNext(ex -> {
if (ex instanceof JwtException) {
return Single.error(new InvalidTokenException(ex.getMessage(), ex));
}
return Single.error(ex);
})
.flatMapMaybe(jwt -> refreshTokenRepository.findByToken(jwt.getJti()).map(refreshToken1 -> convertRefreshToken(jwt)));
}
代码示例来源:origin: gravitee-io/graviteeio-access-management
@Override
public Maybe<Token> getAccessToken(String token, Client client) {
return jwtService.decodeAndVerify(token, client)
.onErrorResumeNext(ex -> {
if (ex instanceof JwtException) {
return Single.error(new InvalidTokenException(ex.getMessage(), ex));
}
return Single.error(ex);
})
.flatMapMaybe(jwt -> accessTokenRepository.findByToken(jwt.getJti()).map(accessToken -> convertAccessToken(jwt)));
}
代码示例来源:origin: io.gravitee.am.gateway.handlers/gravitee-am-gateway-handler
@Override
public Maybe<Token> introspect(String token) {
// any client can introspect a token, we first need to decode the token to get the client's certificate to verify the token
return jwtService.decode(token)
.flatMapMaybe(jwt -> clientSyncService.findByDomainAndClientId(jwt.getDomain(), jwt.getAud()))
.switchIfEmpty(Maybe.error(new InvalidTokenException("Invalid or unknown client for this token")))
.flatMap(client -> getAccessToken(token, client));
}
代码示例来源:origin: gravitee-io/graviteeio-access-management
@Override
public Maybe<Token> introspect(String token) {
// any client can introspect a token, we first need to decode the token to get the client's certificate to verify the token
return jwtService.decode(token)
.flatMapMaybe(jwt -> clientSyncService.findByDomainAndClientId(jwt.getDomain(), jwt.getAud()))
.switchIfEmpty(Maybe.error(new InvalidTokenException("Invalid or unknown client for this token")))
.flatMap(client -> getAccessToken(token, client));
}
内容来源于网络,如有侵权,请联系作者删除!