오늘도 더 나은 코드를 작성하였습니까?

Flow를 사용한 스타일 혼합 본문

Coroutine/coroutineFlow

Flow를 사용한 스타일 혼합

hik14 2021. 5. 31. 17:32

Flow의 가장 흥미로운 기능 중 하나는 suspend 함수를 최고 수준으로 지원한다는 점입니다. flow 빌더와 거의 모든 transform은 정지 함수를 호출할 수 있는 suspend 연산자를 노출합니다. 따라서 네트워크 및 데이터베이스 호출에 관한 기본 안전성이 보장될 뿐만 아니라 flow내에서 일반 정지 함수 호출을 사용하여 여러 비동기 작업을 조정할 수도 있습니다.

 

실제로, 선언적 transform을 명령 코드와 자연스럽게 혼합할 수 있습니다. 예에서 볼 수 있듯이 추가 변환을 적용하지 않고 일반 map 연산자 내부에서 여러 비동기 작업을 조정할 수 있습니다. 많은 사례에서 이 방법을 사용하면 완전한 선언적 접근 방식보다 코드가 훨씬 더 단순해질 수 있습니다.

 

Flow를 시작할 때 suspend 함수(transform)을 사용하여 코드를 단순화할 수 있는 방법을 신중하게 고려하세요.

많은 경우 map, onStart, onCompletion 같은 연산자 내에서 정지 작업을 사용하면 비동기 코드를 자연스럽게 표현할 수 있습니다.

 

combine, mapLatest, flatMapLatest, flattenMerge, flatMapMerge 같은 친숙한 Rx 연산자는 Flow에서 동시 실행을 조정하는 데 사용하는 것이 가장 좋습니다.

 

'Coroutine > coroutineFlow' 카테고리의 다른 글

Stateflow LiveData  (0) 2021.06.02
Flow를 사용한 동시 실행 제어  (0) 2021.05.31
단일값을 보내는 flow 와 flow의 결합.  (0) 2021.05.31
flow을 사용한 비동기 작업  (0) 2021.05.31
flow의 실행 방법  (0) 2021.05.31