Как я могу последовательно обрабатывать функции, которые возвращают фьючерсы в дартс? - PullRequest
0 голосов
/ 05 мая 2019

Если у меня есть несколько функций, которые возвращают Futures.

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

Есть ли способ сделать это с 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
...