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 — для последовательности асинхронных событий.