오르카의 아틀리에

Observable Operator

Operator

When 

Description

Observable.Return

값을 하나만 발행

 

Observable.Repeat

값을 반복해서 발행

 

Observable.Range

지정한 범위의 수치들 발행


Observable.Empty

더미 스트림을 만들어 사용하고 싶을 때

OnCompleted를 즉시 발행하게됨

Observable.EveryUpdate

Observable.EveryFixedUpdate (etc...)

Life cycle에서 Update 부분의 로직을 작성하고 싶을 때

MainThreadDispatcher에서 코루틴이 돌기 때문에 Life cycle관리 주의!

- UpdateAsObservable 을 사용

- 마지막에 AddTo(this.gameObject) 사용

Observable.Interval

일정 시간을 값으로 발행받고 싶을 때

 

Stream Filter

Filter

When

Description

Where

원하는 조건에만 발행하고 싶다

다른 언어에서는 Filter / Linq 참고

DistinctUntilChanged

메시지 값이 바뀔 때만 발행하고 싶다.


First

첫 메시지만 발행

 

Take

지정한 갯수만큼 발행

10이면 10개의 메시지만 발행

TakeWhile

조건이 맞지 않을 때까지 발행

스트림의 While 문

TakeUntil

지정한 스트림에서 메시지를 받을 때까지 발행


Skip

지정한 갯수만큼 무시

 

SkipWhile

조건이 맞지 않을 때까지 스킵

 

SkipUntil

지정한 스트림에서 메시지를 받을 때까지 스킵

 

Stream Control

Operator

When

Description

SelectMany

새로운 스트림(B)을 생성하고 그 스트림에서 발행되는 메시지를 원래의 스트림(A)에서 발행되는 것 처럼 변경할 때

다른 언어에서 FlatMap

Zip

각각의 스트림에 흐르는 메시지들을 하나씩 묶어서 동시에 처리하고 싶을 때

모든 메시지를 순서대로 보관

ZipLatest

각 스트림의 최신 메시지만 보관

CombineLatest

최신 메시지를 보관해 두었다가 각 스트림 중 하나라도 다시 발행되면 발행

Merge

여러개의 스트림을 정리/합성


Concat

스트림이 끝나면 다른 스트림으로 대체

순차적으로 스트림을 사용할 수 있다