Flutter에서 Stream은 데이터 스트림을 처리하는 데 유용한 기능입니다. Stream은 비동기 방식으로 데이터를 전달하며, 데이터가 도착할 때마다 콜백 함수를 호출하여 처리합니다.
1. onData:
onData 콜백 함수는 Stream에서 새로운 데이터가 도착할 때마다 호출됩니다. 콜백 함수는 데이터를 매개변수로 받아 처리합니다.
Stream<int> counterStream() async* {
for (int i = 1; i <= 5; i++) {
await Future.delayed(Duration(seconds: 1));
yield i;
}
}
void main() {
final stream = counterStream();
stream.listen((data) {
print('onData: $data');
});
}
이 코드는 1초 간격으로 1부터 5까지 숫자를 출력하는 Stream을 생성하고, onData 콜백 함수를 사용하여 출력합니다.
2. onDone:
onDone 콜백 함수는 Stream이 종료될 때 호출됩니다. Stream이 종료되는 경우는 다음과 같습니다.
- 모든 데이터가 전송된 경우
- Stream이 에러를 발생시킨 경우
- cancel() 메서드를 사용하여 Stream을 강제로 종료한 경우
void main() {
final stream = Stream.fromIterable([1, 2, 3]);
stream.listen((data) {
print('onData: $data');
}, onDone: () {
print('onDone');
});
}
이 코드는 Stream.fromIterable 메서드를 사용하여 3개의 숫자를 포함하는 Stream을 생성하고, onDone 콜백 함수를 사용하여 Stream이 종료될 때 "onDone" 메시지를 출력합니다.
3. onError:
onError 콜백 함수는 Stream이 에러를 발생시킬 때 호출됩니다. 콜백 함수는 에러 객체를 매개변수로 받아 처리합니다.
void main() {
final stream = Stream.error('Error!');
stream.listen((data) {
print('onData: $data');
}, onError: (error) {
print('onError: $error');
});
}
이 코드는 "Error!"라는 에러를 발생시키는 Stream을 생성하고, onError 콜백 함수를 사용하여 에러 메시지를 출력합니다.
'new' 카테고리의 다른 글
Dart Lambda (0) | 2024.03.18 |
---|---|
Flutter에서 여러 곳에서 Stream을 Listening하는 방법: BroadcastStream 활용 (0) | 2024.03.18 |
Flutter StreamBuilder를 활용한 간단한 타이머 만들기 (0) | 2024.03.18 |
StreamController를 이용한 데이터 관찰 예시 (0) | 2024.03.18 |
Dart Stream: 데이터 흐름을 쉽게 처리하는 방법 (0) | 2024.03.18 |