은 내가 getUserID
호출 내가 getProfile
에 대한 다음 호출에 사용하십시오 CompletionStage<String>
을 반환Java 8에서 thenCompose의 결과를 여러 번 사용하는 방법은 무엇입니까?
myObject.updateDB(payload)
.thenCompose(__ -> getUserID(payload.ID()))
.thenCompose(id -> getProfile(id))
.thenCompose(userProfile -> updateSomething(userProfile))
.thenCompose(__ -> notifyUser(id))
.thenAccept(__ -> doSomething())
.exceptionally(t -> doSomethingElse());
유사 thenCompose
일련의 호출을 보유하고 있습니다. notifyUser
호출에 대해 다시 id
이 필요합니다. 어떻게 사용 가능하게 만들 수 있습니까? IDE가 표시됩니다.
기호 ID를 해결할 수 없습니다.
합니다. 간단한 해결책은'구성 체인을 단일 코드 블록으로 전환하는 것입니다. 이렇게 많은 단계에서 전체적으로 선형의 시퀀스를 표현할 때 이점이 없다. 단일 액션으로 작성하면 필요한 모든 값이 범위에 있으며 사용하지 않은 모든 매개 변수가 사라집니다. – Holger