У меня есть Future [T], и я хочу сопоставить результат как с успехом, так и с отказом.
Например, что-то вроде
val future = ... // Future[T]
val mapped = future.mapAll {
case Success(a) => "OK"
case Failure(e) => "KO"
}
Если я использую map или flatmap, он отображает только фьючерсы на успех. Если я использую recover, он отображает только несостоявшиеся фьючерсы. onComplete выполняет обратный вызов, но не возвращает измененное будущее. Transform будет работать, но он принимает 2 функции, а не частичную функцию, поэтому немного уродливее.
Я знаю, что могу создать новый Promise, и завершить это с помощью onComplete или onSuccess/onFailure, но я надеялся, что что-то у меня пропало, что позволит мне сделать это с помощью одиночный PF.