Я довольно новичок в scala, поэтому будьте нежны!Положить будущее внутри OnFailure
Я пытаюсь создать «логическую операцию», вот пример кода:
val f1:Future[Int] = dao.insertIntoDB
f1.flatmap{
x => {
val f2 = sendHttpRequestFuture
f.onFailure{
case t => dao.revertDbChangeFuture
}
}
f1.onFailure{
logger.error("error)
}
Так что я думаю, произошло то, что внешний OnFailure будет выполняться первым, а затем внутреннюю OnFailure.
Дело в том, что onFailure return Unit, поэтому кажется странным положить будущее внутри onFailure, я не уверен, что это правильный способ справиться с таким вариантом использования.
Мне в основном нужно отменить свои изменения, а действие возврата - асинхронно.
Можете ли вы дать совет? Спасибо!
Я пропустил вас, я снова редактировал свой пост. Код, который я прочитал, действительно выглядит как код, который уже был вычислен. это не так. Мой вопрос был в основном о поведении будущего внутри предложения onFailure.Когда я думаю об этом немного больше, мне кажется, что при написании будущего внутри onFailure будущее будет выполнено в конце концов (даже после того, как код уже закончен). Проблема в том, что я не могу составить ее и контролировать это будущее. Например, если будущее внутри onFailure, тоже не удается, я должен добавить onFailure к нему также? И спасибо за ваш ответ! – Tomer