Skip to content

Instantly share code, notes, and snippets.

@TuenTuenna
Created June 21, 2025 05:02
Show Gist options
  • Save TuenTuenna/f9ce851232c038929cd9c1d915f45a54 to your computer and use it in GitHub Desktop.
Save TuenTuenna/f9ce851232c038929cd9c1d915f45a54 to your computer and use it in GitHub Desktop.
stream_controller_tutorial
import 'dart:async';
import 'package:flutter/material.dart';
void main() {
var controller = StreamController<String>.broadcast();
var subscription01 = controller.stream;
subscription01.listen(
(data) {
print('[01 Listen] onData - data: $data');
},
onDone: () {
print('[01 Listen] onDone');
},
onError: (err) {
print('[01 Listen] onError - err: $err');
},
cancelOnError: true,
);
var subscription02 = controller.stream;
subscription02.listen(
(data) {
print('[02 Listen] onData - data: $data');
},
onDone: () {
print('[02 Listen] onDone');
},
onError: (err) {
print('[02 Listen] onError - err: $err');
},
cancelOnError: true,
);
print('controller.hasListener: ${controller.hasListener}');
controller.add("안녕하세요! 1");
controller.add("안녕하세요! 2");
controller.close();
controller.add("안녕하세요! 3");
// controller.addError('에러입니다.!');
controller.add("안녕하세요! 4");
controller.addStream(someDelayedWords());
// runApp(const MyApp());
}
Stream<String> someDelayedWords() async* {
await Future.delayed(Duration(seconds: 2));
yield '오늘도';
await Future.delayed(Duration(seconds: 2));
yield '빡코딩';
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment