Если вам нужно сделать два последовательных вызова метода, который возвращает Future
, вы можете использовать flatMap
.
post(uri, payload).flatMap(_ => post(uri, payload))
Это не запустит вторую post
операцию, пока не завершится первая.
Если у вас есть несколько связанных вызовов, вы можете использовать foldLeft
на Range
, чтобы применить это соответствующее количество раз:
(0 to N-1).foldLeft(post(uri, payload)){
case (prev, _) => prev.flatMap(_ => post(uri, payload))
}
На практике вы, вероятно, будете использовать значение из Range
, чтобы отслеживать ход выполнения этой операции, а не отбрасывать ее.