如果我有一堆返回期货的函数。
是否有一种干净的方法来顺序调用返回期货的函数,并仅在当前期货成功完成后才继续下一个期货?还有取消流的机制吗?
是否可以使用RxDart做到这一点?
ValueGetter<Future<int>> getter1 = () => Future.value(1);
ValueGetter<Future<int>> getter2 = () => Future.delayed(Duration(seconds: 2)).then((_) => Future.value(2));
ValueGetter<Future<int>> getter3 = () => Future.delayed(Duration(seconds: 3)).then((_) => Future.value(3));
ValueGetter<Future<int>> getter4 = () => Future.delayed(Duration(seconds: 1)).then((_) => Future.value(4));
List<ValueGetter<Future<int>>> futureInts = [getter1, getter2, getter3, getter4];
for (int i = 0; i < futureInts.length; i++) {
int anInteger = await futureInts[i]();
print(anInteger);
}
//prints
// 1
// 2
// 3
// 4