在 RX JAVA(java8) 中,如何保留 previousflatMap或map.
public void createAccount(]) {
JsonObject payload = routingContext.getBodyAsJson();
socialService.getOAuthToken(payload)
.flatMap(token -> {
return getAllAccounts(token);
})
.flatMap(accounts -> {
// Save accounts with TOKENS
})
.subscribe(accountID -> {
response(accountID);
);
}
Run Code Online (Sandbox Code Playgroud)
所以在上面的代码中,第二步flatMap我怎样才能token从之前的flatMap.
您必须压缩帐户和令牌并将其传递到下一个Stream操作。
//Note you have to replace T, A with the right type
socialService.getOAuthToken(payload).flatMap(token -> getAllAccounts(token)
.map(account -> new SimpleImmutableEntry<T, A>(token, account)))
.flatMap(accounts -> /* accounts.getKey() -> token, accounts.getValue() -> account */)
.subscribe(accountId -> response(accountId));
Run Code Online (Sandbox Code Playgroud)