有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java RXJava持久化上一个flatMap的返回值

在rxjava(java8)中,如何持久化前一个flatMapmap的值

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);
            );
}

在上面的代码中,在第二个flatMap中,我如何从前面的flatMap中获得token


共 (1) 个答案

  1. # 1 楼答案

    您必须压缩帐户和令牌,并将其传递给下一个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));