Junior — Middle
Quelle est la différence entre les objets Stream et Future dans le contexte de la programmation asynchrone?
sobes.tech IA
Réponse de l'IA
В контексте асинхронного программирования во 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 — для последовательности асинхронных событий.