작성한 질문수
Flutter 중급 1편 - 클린 아키텍처
32 새 노트 작성, 노트 표시 기능
작성
·
337
0
강의 마지막 부분에 StreamSubscription 해제 관련해서 질문드립니다.
dispose에서 _subscription?.cancel(); 해주는데 다시 화면에 들어가면 오류가 발생하여
StreamController 의 속성을 boradcast 로 주어 오류를 해결하셧는데 stream 을 해제해야 StreamSubscription 이 해제되어야 할 것 같은데 broadcast 에서는 이전에 구독한게 계속 남아있지 않을까요??
답변 1
StreamController 는 기본적으로 하나의 관찰만 허용합니다.
broadcast() 생성자로 생성하면 여러개의 관찰이 허용됩니다.
예제 코드에서는 ViewModel 을 하나의 인스턴스만 재사용하고 있어서 여러번 listen을 하기 위해서 broadcast() 생성자를 사용하는것이 포인트입니다.
dispose에서 cancel()이 이루어 지므로 이전 구독이 남아있거나 하지는 않습니다.