시배's Android

Kotlin Coroutines Deep Dive | 21장. 플로우 만들기 본문

Book/Kotlin Coroutines Deep Dive

Kotlin Coroutines Deep Dive | 21장. 플로우 만들기

si8ae 2024. 3. 28. 21:43

21장 플로우 만들기

원시값을 가지는 플로우

flowOf를 활용해 간단하게 플로우를 만들 수 있다.

flowOf(1, 2, 3, 4,5 ).colect {
	// TODO
} 

값이 없는 플로우면 emptyFlow<Int>의 형태로 제공

컨버터

asFlow를 활용해 다음과 같은 타입을 플로우로 바꿀 수 있다.

  • Iterable
  • Iterator
  • Sequence
  • Mono
  • Flux
  • List

등등

함수를 플로우로 선언하기

함수가 플로우를 반환하도록 할 수 있다.

fun someFunction(): Flow<Int> = flow {
	// Do Something
    emit(2)
}

플로우와 리액티브 스트림

Flux, Mono또한 라이브러리에서 플로우의 변환을 제공한다.

kotlinx-coroutines-reactor라이브러리를 활용하라

채널 플로우와 콜백 플로우

채널 플로우는 코루틴을 하나 열어서 값들을 미리 방출합니다. (채널과 동일하다고 봐도 됨) 이에 따라 emit 대신 send를 사용합니다.

콜백플로우는 채널플로우와 비슷하지만 값들을 전송하거나 받을 때 콜백을 달 수 있습니다.

두 가지 형태 모두 특정한 상황에서 사용되며 이런게 있다 정도로만 알고 넘어가기