首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FileIO.toPath汇完成触发

FileIO.toPath汇完成触发
EN

Stack Overflow用户
提问于 2018-11-22 19:30:02
回答 1查看 214关注 0票数 0

我有一个IO源,我正在多路复用一个文件,并将其切换到系统的另一部分执行如下:

代码语言:javascript
复制
source.alsoTo(FileIO.toPath(path))

这用于缓存,也就是说,我正在编写一个文件,通过我的系统传递到一个临时缓存位置。一旦写好了缓存,我想把它原子地移到它的最终位置。

源的使用者获得一个Future并知道何时完成,但是我的边通道写入文件到磁盘没有这样的工具可以找到。是否有方法将完成处理程序附加到接收器,以便我能够完成对该文件的操作?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-23 13:38:38

不要使用alsoTo,而是使用alsoToMatmapMaterializedValue来访问文件Sink的物化值

代码语言:javascript
复制
val source: Source[ByteString, _] = ???

val cachedSource =
  source
    .alsoToMat(FileIO.toPath(path))(Keep.right)
    .mapMaterializedValue { fileResult => // fileResult is a Future[IOResult]
      // do something with fileResult
    }
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53437098

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档