-
카테고리
-
세부 분야
모바일 앱 개발
-
해결 여부
미해결
Stream result 질문
22.12.16 11:49 작성 22.12.16 11:53 수정 조회수 254
0
안녕하세요 선생님. 날씨가 많이 쌀살한데, 건강 관리는 잘 하고 계시는지요 ?
다름이 아니라 선생님 강의를 보고 제가 하는 프로젝트에 적용해보고 있는데 궁금증이 생겨 질문드립니다.
첨부한 사진을 보시면 Future가 아닌 Stream으로 데이터를 처리하고 있는데 Result 를 통해 Usecase 영역에서 .when을 통해 결과 값이 success 일 때, error 일 때 분기 처리를 해주고 싶은데 Stream일 경우 Result를 어떻게 처리를 해주어야 하나요 ? 마지막 사진의 result.when 에 접근이 되지 않아 방법이 떠오르지 않습니다.
Stream 을 첫 데이터 수신 이후 5초 주기로 수신하고자 하는데, 첫 번째 사진과 같이 함수를 작성하니 첫 데이터 호출 부터 5초가 지연이 됩니다. 첫 데이터 수신은 1초, 그 후 5초로 변경하고자 하는데 어떤 방법을 사용해야 하나요 ?
긴 글 읽어주셔서 감사합니다.
답변을 작성해보세요.
1
오준석
지식공유자2022.12.16
Stream 의 경우에는 listen() 메서드에서 수신을 하는데요. UseCase 가 아닌 ViewModel에서 처리하시면 될 것 같습니다.
스트림.listen((result) => result.when( ... ) )으로 처리할 수 있습니다.두 번째 질문의 솔루션은 여러가지가 있는데 다음과 같이 Stream 을 생성할 수 있습니다. 참고해 보세요.
Stream<String> lines() async* {
await Future.delayed(const Duration(seconds: 1));
yield 'Hello';
while (true) {
await Future.delayed(const Duration(seconds: 5));
yield 'Hello';
}
}
답변 1