使用 DartZ 调用多个 Future 时如何避免嵌套折叠?

Man*_*anu 8 asynchronous future dart flutter 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(),
    );
  },
);
Run Code Online (Sandbox Code Playgroud)

基本上,我想调用第一个函数,它返回失败或单位(成功值并不重要)。

然后,如果第一个函数成功,我想调用另一个函数,它也返回 Future 或 Unit。

我该如何避免fold另一个内部的这种丑陋的嵌套调用fold

我正在使用dartz包,它非常酷,但缺乏文档。