与flatMap的异步循环

时间:2014-02-14 12:12:01

标签: scala asynchronous future

我想异步插入大量样本数据。我用了这段代码:

def insertSampleData(count: Int): Future[LastError] = {
  if (count > 0) {
    val future = defaultService.save(... /*sample data*/)

    future flatMap { _ =>
      insertSampleData(count - 1)
    }
  } else {
    Future.successful(.../* Empty */)
  }
}

val result = insertSampleData(1000000) map { _ =>
  "Inserted"
}

resultFuture[String],在插入所有项目时返回“已插入”。

表现还可以吗?还有其他办法吗?

0 个答案:

没有答案