小编use*_*890的帖子

在scala中用Future替换while循环

我有一个返回值为Future [Int]的函数

def func: Future[Int] = {...}
Run Code Online (Sandbox Code Playgroud)

我将定期检查func的返回值,直到它满足某些条件(例如返回值大于10),然后我将使用此返回值来创建map/flatmap的其他未来值.

如何在没有任何同步代码的情况下完成这项工作?如下所列:

def check: Future[Int] = {
    var ret: Int = Await.result(func, Duration.Inf)
    while (ret <= 10) {
        ret = Await.result(func, Duration.Inf)
    }
    Future(ret + 100)
}
Run Code Online (Sandbox Code Playgroud)

scala

7
推荐指数
1
解决办法
1011
查看次数

标签 统计

scala ×1