Tôi có đoạn mã sau bên trong một diễn viênAkka: Gởi nhắn tin trong tương lai để một diễn viên
def receive = {
case All() => {
val collection: BSONCollection = db("ping")
val future:Future[List[Ping]] = collection.find(BSONDocument()).cursor[Ping].toList()
val zender = sender
future onComplete {
case Success(list) => zender ! list
case Failure(throwable) => zender ! List()
}
}
}
tôi không thích làm thế nào tôi có sử dụng chức năng onComplete để gửi kết quả trở lại nam diễn viên người gửi. Tôi muốn biết nếu có thể chuyển đổi nó thành một cái gì đó như thế này:
def receive = {
case All() => {
val collection: BSONCollection = db("ping")
val future:Future[List[Ping]] = collection.find(BSONDocument()).cursor[Ping].toList()
"sender ! future" // one option
"future.map(list => sender ! list)" //Another option. I know it's not map, but maybe another function
}
}
Tôi cảm thấy điều này chảy tốt hơn với chuỗi tương lai.
không phải là phương pháp tiếp cận đầu tiên của bạn? –
@ Alex Vâng, nhưng đường ống thì thanh lịch hơn nhiều. – Luciano
Được rồi. Nhưng bạn đang nói ** Tôi không thích cách tôi phải sử dụng hàm onComplete để gửi kết quả lại cho diễn viên người gửi. ** và mã của bạn thực hiện chính xác điều đó - bạn đang gửi kết quả trả về cho diễn viên người gửi . –