Streams
🎯 Mục tiêu: Streams - async sequence of values.
💡 Tạo Stream
Phần tiêu đề “💡 Tạo Stream”// Từ iterableStream<int> numbers = Stream.fromIterable([1, 2, 3, 4, 5]);
// PeriodicStream<int> periodic = Stream.periodic( Duration(seconds: 1), (count) => count);
// Async* generatorStream<int> countStream() async* { for (int i = 0; i < 5; i++) { await Future.delayed(Duration(seconds: 1)); yield i; }}📝 Listen
Phần tiêu đề “📝 Listen”var stream = countStream();
stream.listen( (data) => print(data), onError: (error) => print("Error: $error"), onDone: () => print("Done"),);🔧 await for
Phần tiêu đề “🔧 await for”await for (var value in countStream()) { print(value);}📱 Trong Flutter - StreamBuilder
Phần tiêu đề “📱 Trong Flutter - StreamBuilder”StreamBuilder<int>( stream: countStream(), builder: (context, snapshot) { if (snapshot.hasData) { return Text('Count: ${snapshot.data}'); } return CircularProgressIndicator(); },);✅ Checklist
Phần tiêu đề “✅ Checklist”- Stream cho multiple async values
-
async*vàyield -
listenhoặcawait for