使用flatMap与全面理解提高性能

问题描述 投票:0回答:1

我的游戏应用程序中有一个演员,每隔2秒钟便会向某种方法发送一条消息:

onSomething() : Future[Unit] = {
    for {
        a <- somethingThatReturnsFuture
        b <- anotherThingThatReturnsFuture
    }
}

此方法有两个返回将来的调用,所以我决定使用for-comprehension,但是for-comprehension是否阻塞?所以即使方法运行了16个实例,akka也无法再次调用此方法?

如果我可以使用我的方法来处理flatMap / map,这将使akka具有更好的性能?像这样:

onSomething() : Future[Unit] = {
    somethingThatReturnsFuture.flatMap(res1 => {
        anotherThingThatReturnsFuture.map(res2 => {
            //whatever
        })
    })
}

谢谢

scala playframework akka actor
1个回答
0
投票

假设@Luis Miguel评论:

[当您非常简单地理解时,地图/ foreach替代方案看起来确实更好。一旦开始撰写它们,但是,您很容易迷失括号和嵌套级别。当发生这种情况时,对于理解通常会更加清楚。

© www.soinside.com 2019 - 2024. All rights reserved.