如何简洁地在 foreach 中编写 Future 方法

How to write a Future method in foreach concisely

我是 Scala 的初学者。下面嵌套的case语句有没有简洁的写法?

def delete(
  client : TwitterRestClient,
  userId : Long,
  keyword : String) : Unit = {
client.userTimelineForUserId(userId).onComplete{
  case Success(value) => {
    value.data.filter(_.text.contains(keyword)).foreach(x => {
      client.deleteTweet(x.id).onComplete{
        case Success(value) => println(s"Success: $value")
        case Failure(exception) => println(s"Fail: $exception")
      }
    })
  }
  case Failure(exception) => println(s"Fail:$exception")
}

使用 flatMap、排序 Futures 和使用 collect 而不是 filtermap 的方式略有不同:

def delete(
  client : TwitterRestClient,
  userId : Long,
  keyword : String) : Unit = {

  client
      .userTimelineForUserId(userId)
      .flatMap(ratedData => Future.sequence(ratedData.data.collect {
        case tweet if tweet.text.contains(keyword) => client.deleteTweet(tweet.id)
      }))
      .onComplete {
        case Success(value) => println(s"Success: $value")
        case Failure(exception) => println(s"Fail: $exception")
      }
}

我只编译了代码,力运行它。