把Akka流中的物化值类型保留在divertTo或alsoTo中
创始人
2024-11-19 18:30:24
0

在Akka流中,我们可以使用divertTo或alsoTo操作符将流复制到多个目的地,但是这也可能导致物化值类型的丢失。为了保留物化值类型,我们需要在divertTo或alsoTo之前使用Keep.right操作符。以下是一个示例代码:

import akka.actor.ActorSystem
import akka.stream.ActorMaterializer
import akka.stream.scaladsl.{Keep, Sink, Source}

implicit val system: ActorSystem = ActorSystem("example")
implicit val materializer: ActorMaterializer = ActorMaterializer()

val source = Source(List(1, 2, 3, 4))

// 创建三个物化值类型Sink
val sink1 = Sink.foreach[Int](println)
val sink2 = Sink.foreach[Int](println)
val sink3 = Sink.foreach[Int](println)

// 将源源复制到3个不同的Sink,但保留物化值类型
val (mat1, mat2, mat3) = source
  .alsoToMat(sink1)(Keep.right)
  .alsoToMat(sink2)(Keep.right)
  .toMat(sink3)(Keep.right)
  .run()

// 物化值类型与Sink相关
println(s"mat1: $mat1") // mat1: Future[Done]
println(s"mat2: $mat2") // mat2: Future[Done]
println(s"mat3: $mat3") // mat3: Future[Done]

在上面的代码中,我们首先创建了一个Source,然后使用alsoToMat操作符将它复制到三个不同的Sink中,并使用Keep.right保留了物化值类型。最后,我们通过将Sink与Keep.right一起使用,将每个Sink的物化值类型分配给不同的变量。这确保物化值类型与每个Sink相关联。

相关内容

热门资讯

随着!微乐小程序辅助教程!真是... 您好,微乐小程序辅助教程这款游戏可以开挂的,确实是有挂的,需要了解加去威信【136704302】很多...
近日!约战沙城脚本!总是是有辅... 近日!约战沙城脚本!总是是有辅助平台(有挂分享)-哔哩哔哩1、约战沙城脚本公共底牌简单,约战沙城脚本...
这一现象值得深思!哈糖大菠萝辅... 这一现象值得深思!哈糖大菠萝辅助!好像是有辅助器(真是有挂)-哔哩哔哩1、哈糖大菠萝辅助辅助软件下载...
近期!方片十三张源码!总是是有... 近期!方片十三张源码!总是是有辅助安装(有挂讲解)-哔哩哔哩1、用户打开应用后不用登录就可以直接使用...
今年以来!胡乐辅助脚本的详细步... 今年以来!胡乐辅助脚本的详细步骤!本来是真的辅助插件(有挂分享)-哔哩哔哩1、上手简单,内置详细流程...
现有说明如下!微信小程序欢乐辅... 现有说明如下!微信小程序欢乐辅助器免费下载!其实真的是有辅助修改器(有挂方式)-哔哩哔哩微信小程序欢...
日前!闲来辅助神器免费版在哪下... 日前!闲来辅助神器免费版在哪下载!切实真的是有辅助脚本(有人有挂)-哔哩哔哩1)闲来辅助神器免费版在...
据文件显示!新卡农有挂吗!都是... 据文件显示!新卡农有挂吗!都是存在有辅助神器(有挂技巧)-哔哩哔哩1、打开软件启动之后找到中间准星的...
据监测!光明大厅微信呢链接辅助... 据监测!光明大厅微信呢链接辅助试用!都是存在有辅助挂(竟然有挂)-哔哩哔哩1、这是跨平台的光明大厅微...
这一问题亟待解决!哈灵脚本修改... 这一问题亟待解决!哈灵脚本修改器!确实真的是有辅助神器(有挂助手)-哔哩哔哩哈灵脚本修改器能透视中分...