gpt4 book ai didi

Scala 检查 Future[Seq[String]] 是否为空

转载 作者:行者123 更新时间:2023-12-04 05:03:40 25 4
gpt4 key购买 nike

我想检查 Future[Seq[String]] 是否为空并且我正在使用

if(!Future.sequence(sortSeq).isEmpty){
//doSomething
}

但它引发了我的错误?

最佳答案

我想 sortSeq 的类型是 Future[Seq[String]] ,所以你不需要 Future.sequence .

您必须等待 Future 的结果然后检查结果是否为空:

import scala.concurrent.duration._
if(!Await.result(sortSeq.map{_.isEmpty}, 5.seconds){
//doSomething
}

如果可以执行 doSomething在不同的线程中,你可以试试这个:
val someRusultFuture = sortSeq.map{ rs =>
if(!rs.isEmpty){
//doSomething
}
}

但你必须等待 someRusultFuture 的结果.

证明它有效:
scala> import concurrent.{Future, Await}
import concurrent.{Future, Await}

scala> import scala.concurrent.duration._
import scala.concurrent.duration._

scala> val sortSeq = Future{ Thread.sleep(10000); Seq("a") }
sortSeq: scala.concurrent.Future[Seq[String]] = scala.concurrent.impl.Promise$DefaultPromise@3592f7c6

scala> Await.result(sortSeq.map{_.isEmpty}, 11.seconds)
res1: Boolean = false

关于Scala 检查 Future[Seq[String]] 是否为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15803059/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com