인프런 커뮤니티 질문&답변

sjjin님의 프로필 이미지
sjjin

작성한 질문수

Flutter 중급 1편 - 클린 아키텍처

32 새 노트 작성, 노트 표시 기능

StreamSubscription 해제시키기

작성

·

337

0

강의 마지막 부분에 StreamSubscription 해제 관련해서 질문드립니다.

dispose에서 _subscription?.cancel(); 해주는데 다시 화면에 들어가면 오류가 발생하여

StreamController 의 속성을 boradcast 로 주어 오류를 해결하셧는데 stream 을 해제해야 StreamSubscription 이 해제되어야 할 것 같은데 broadcast 에서는 이전에 구독한게 계속 남아있지 않을까요??

답변 1

0

오준석님의 프로필 이미지
오준석
지식공유자

StreamController 는 기본적으로 하나의 관찰만 허용합니다.

broadcast() 생성자로 생성하면 여러개의 관찰이 허용됩니다.

예제 코드에서는 ViewModel 을 하나의 인스턴스만 재사용하고 있어서 여러번 listen을 하기 위해서 broadcast() 생성자를 사용하는것이 포인트입니다.

dispose에서 cancel()이 이루어 지므로 이전 구독이 남아있거나 하지는 않습니다.

sjjin님의 프로필 이미지
sjjin

작성한 질문수

질문하기