如果流程A产生
Pair<Source<ByteString,?>, Object>
如何将此插座连接到源B上映射的Flow B入口。例如,流程B的出口将是
Pair<InputStream<Long>,Object>.
答案 0 :(得分:0)
如果您获得了所提供类型的来源:
Source< Pair<Source<ByteString, BoxedUnit>, Object>, BoxedUnit> pairSource;
您还获得了将ByteString
值转换为InputStream<Long>
的流程:
Flow<ByteString, InputStream<Long>, ?> byteStrToInputStream;
然后可以使用flatMapConcat转换它:
Source< Pair<InputStream<Long>,Object>, BoxedUnit> inputStreamSource =
pairSource.flatMapConcat( pair -> {
pair.getKey()
.via(byteStrToInputStream)
.map(inputStream -> ImmutablePair(inputStream, pair.getValue()))
})
ByteStrings的每个传入源都已耗尽,并且结果连接在一起。每对的原始右侧,即Object
将添加到每个InputStream。