我正在阅读cassandra事件流,并希望获取最后一个元素。我目前正在这样做:
def myData: Future[Long] =
readJournal(myPersistenceId)
.drop(5)
.take(1)
.map(l => l.mydata)
.runWith(Sink.head)
之所以行之有效,是因为我知道我将获得6
个事件,而要获得最后一个事件,我将放弃5
并参加1
。但是,我想知道是否有一种方法可以使我不对drop(5)
和take(1)
进行硬编码。有什么办法可以让我总是参加上一个比赛吗?
答案 0 :(得分:2)
def myData: Future[Long] =
readJournal(myPersistenceId)
.map(_.mydata)
.runWith(Sink.last)
或
def myData: Future[Option[Long]] =
readJournal(myPersistenceId)
.map(_.mydata)
.runWith(Sink.lastOption)