3つの異なるクライアントから3つの属性を返すBFFを作成しようとしています。応答は次のようになります。Mono <ExampleClass '>:
{
name: "Exemple", // <- nameClient
value: 20.0, // <- valueClient
otherValue: 25.0 // <- otherValueClient
}
私はこれをやろうとしました:
return nameClient
.getName(clientId)
.zipWith( valueClient.getValue(id))
.zipWith( otherValueClient.getOtherValue(id))
.map {
Product(it.t1.t1.name, it.t1.t2.value, it.t2.otherValue) }
}
問題は、内部に他のタプルを持つタプルを取得していることです。Tuple2<Tuple2 <value、value>、value>で、内部のタプルの2番目の値を取得していません。この応答を改善する別の方法はありますか?
あなたはの静的メソッドを使用することができますzip
にMono
クラス
Mono.zip(nameClient,valueClient,otherValueClient)
これにより、Tuple3
3つすべてがMono
完了すると、
完了するのに1つのMonoが必要な場合、その値を後続のMonoで使用するために、すべてをまとめて圧縮したい場合は、次のようなことを行うことができます
nameClient
.getName(clientId)
.flatMap(name ->
Mono.zip(
Mono.just(name),
valueClient.getValue(name),
otherValueClient.getValue(name)
)
)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加