Sobes.tech
Back to questions
Junior — Middle
112

Чем отличаются объекты Stream и Future в контексте асинхронного программирования?

Companies where asked
Другойкод

Answer from AI

sobes.tech AI

В контексте асинхронного программирования во Flutter (Dart) объекты Future и Stream служат для работы с асинхронными операциями, но имеют разные назначения:

  • Future представляет собой результат асинхронной операции, которая завершится единожды в будущем. Это как обещание получить значение или ошибку.

  • Stream представляет последовательность асинхронных событий или данных, которые могут приходить несколько раз со временем.

Пример:

// Future: получение одного значения
Future<String> fetchData() async {
  await Future.delayed(Duration(seconds: 2));
  return 'Данные загружены';
}

// Stream: получение нескольких значений со временем
Stream<int> countStream() async* {
  for (int i = 1; i <= 5; i++) {
    await Future.delayed(Duration(seconds: 1));
    yield i;
  }
}

Итого, Future — для одной асинхронной операции с одним результатом, Stream — для последовательности асинхронных событий.