StreamSubscription
Stream 이벤트에 대한 구독 입니다. Stream.listen을 사용하여 Stream을 수신하면 StreamSubscription 객체가 반환됩니다.
subscription은 리스너에게 이벤트를 제공하고, 이벤트를 처리하는 데 사용되는 콜백을 가지고 있습니다. subscription을 사용하여 이벤트 구독을 취소하거나 stream에서 이벤트를 일시적으로 중지할 수도 있습니다.
listen 함수 정의
StreamSubscription<T> listen(void onData(T event)?,
{Function? onError, void onDone()?, bool? cancelOnError});
이벤트를 처리하는 데 사용되는 콜백을 가지고 있습니다.
onData
onData 콜백은 스트림에서 데이터가 생길때마다 실행됩니다.
onError
onError 콜백은 스트림에서 에러가 발생할때마다 실행됩니다.
onDone
onDone 콜백은 스트림이 완료되었을 때 실행됩니다.
cancelOnError
cancelOnError 옵션은 스트림에서 에러가 발생할 때 해당 Subscription 객체의 구독을 취소시킬지 여부를 설정할 수 있는 옵션이다. 기본값으로 True이기 때문에 에러가 나면 더 이상 구독하지 않는다. 에러가 나도 처리를 계속하고 싶다면 false를 주어야 한다.
StreamSubscription 생성
steam.listen을 사용하면 StreamSubscription 객체가 반환되고 타입 추론 때문에 sub에는 Streamsubscription 객체가 담깁니다. 여기서 print가 실행되는 이유는 listen 함수의 첫 번째 인자로 onData 콜백 함수를 받기 때문입니다. 즉 데이터가 생길 때마다 print 함수에 생긴 데이터를 자동으로 넣어 실행시킵니다.
StreamSubscription 메소드
pause()
구독을 일시 중지합니다.
resume()
구독을 재개합니다.
cancel()
구독을 취소시킵니다.
isPaused
구독이 일시 중지 상태인지 확인합니다.
'Flutter > 기본' 카테고리의 다른 글
[Flutter] AppBar UnderLine 밑줄 설정 (0) | 2023.04.07 |
---|---|
[Flutter] TextFormField 텍스트 밑줄 제거 (0) | 2023.03.17 |
[Flutter] 알아두면 좋은 정보들 / 면접 준비에 좋은 질문 답변 (0) | 2023.02.09 |
[Flutter] Key 란 무엇인가? (0) | 2023.02.09 |
[Flutter] Widget Tree / Tree 란 무엇인가? (0) | 2023.02.09 |