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 |
스트림이 끝나면 다른 스트림으로 대체 |
순차적으로 스트림을 사용할 수 있다 |