如何将流的内容放入val?
How to put contents of stream into a val?
我有一个这样的流:
def myStream[T: AS: MAT](source: Source[T, NotUsed]): Future[Seq[T]] = {
return source.runWith(Sink.seq)
}
def myMethod(colorStream: Source[Color, NotUsed]) {
val allColors = myStream(colorStream).map(_.toList)
//how can I actually extract the things from allColors
//so that I can call my method below? myOtherMethod
if I do println(allColors.map(println _)) I can print the elements fine
}
def myOtherMethod(colors: Seq[Color] = List.empty()) {
...
}
allColors 是一个未来。您需要访问未来包装的内容才能访问 colours:Seq[Color]。试试这个:
allColors.onComplete{
case Success(list) => myOtherMethod(list)
case Failure(err) => //handle the error
}
我有一个这样的流:
def myStream[T: AS: MAT](source: Source[T, NotUsed]): Future[Seq[T]] = {
return source.runWith(Sink.seq)
}
def myMethod(colorStream: Source[Color, NotUsed]) {
val allColors = myStream(colorStream).map(_.toList)
//how can I actually extract the things from allColors
//so that I can call my method below? myOtherMethod
if I do println(allColors.map(println _)) I can print the elements fine
}
def myOtherMethod(colors: Seq[Color] = List.empty()) {
...
}
allColors 是一个未来。您需要访问未来包装的内容才能访问 colours:Seq[Color]。试试这个:
allColors.onComplete{
case Success(list) => myOtherMethod(list)
case Failure(err) => //handle the error
}