Как избежать вложенного сворачивания при вызове нескольких будущих с помощью DartZ?

#flutter #dart #asynchronous #future #dartz

Вопрос:

У меня есть фрагмент кода, который выглядит примерно так:

 final Either<Failure, Unit> resA = await deleteA();

resA.fold(
  (failure) => handleFailure(),
  (success) async {
    final Either<Failure, Unit> resB = await deleteB();
    resB.fold(
      (failure) => handleFailure(),
      (success) => handleSuccess(),
    );
  },
);
 

По сути, я хочу вызвать первую функцию, которая возвращает либо сбой, либо единицу (значение успеха не имеет значения).

Затем, если первая функция удалась успешно, я хочу вызвать другую функцию, которая также вернет либо будущее, либо единицу.

Как я мог сделать, чтобы избежать этого уродливого вложенного вызова fold внутри другого fold ?

Я работаю с пакетом dartz, который действительно классный, но не имеет документации.