티스토리 뷰
Operators
Chaining Operators
- 거의 모든 연산자들은 Observable상에서 동작하고 Observable을 리턴한다.
- 이 접근 방법은 연산자들을 연달아 호출할 수 있는 연산자 체인을 제공한다.
- 연산자 체인에서 각각의 연산자는 이전 연산자가 리턴한 Observable을 기반으로 동작하며 동작에 따라 Observable을 변경한다.
- 먼저 실행된 연산자가 리턴한 Observable을 기반으로 다음 연산자가 동작하기 때문에 Observable은 순서대로 실행되야한다.
Operators By Category
Creating Observables
- Create — 직접적인 코드 구현을 통해 옵저버 메서드를 호출하여 Observable을 생성한다
- Defer — 옵저버가 구독하기 전까지는 Observable 생성을 지연하고 구독이 시작되면 옵저버 별로 새로운 Observable을 생성한다
- Empty/Never/Throw — 아주 정확하고 제한된 행동을 하는 Observable을 생성한다
- From — 다른 객체나 자료 구조를 Observable로 변환한다
- Interval — 특정 시간별로 연속된 정수형을 배출하는 Observable을 생성한다
- Just — 객체 하나 또는 객채집합을 Observable로 변환한다. 변환된 Observable은 원본 객체들을 발행한다
- Range — 연속된 범위(Range)의 정수를 발행하는 Observable을 생성한다
- Repeat — 특정 항목이나 연속된 항목들을 반복적으로 배출하는 Observable을 생성한다
- Start — 함수의 실행 결과를 배출하는 Observable을 생성한다
- Timer — 지정된 시간이 지나고 난 후 항목을 하나 배출하는 Observable을 생성한다
Transforming Observables
- Buffer — Observable로부터 정기적으로 항목들을 수집하고 묶음으로 만든 후에 묶음 안에 있는 항목들을 한번에 하나씩 배출하지 않고 수집된 묶음 단위로 배출한다
- FlatMap — 하나의 Observable이 발행하는 항목들을 여러개의 Observable로 변환하고, 항목들의 배출을 차례차례 줄 세워 하나의 Observable로 전달한다
- GroupBy — 원본 Observable이 배출하는 항목들을 키(Key) 별로 묶은 후 Observable에 담는다. 이렇게 키 별로 만들어진 Observable들은 자기가 담고 있는 묶음의 항목들을 배출한다
- Map — Observable이 배출한 항목에 함수를 적용한다
- Scan — Observable이 배출한 항목에 연속적으로 함수를 적용하고 실행한 후 성공적으로 실행된 함수의 리턴 값을 발행한다
- Window — 정기적으로 Observable의 항목들을 더 작은 단위의 Observable 윈도우로 나눈 후에, 한번에 하나씩 항목들을 발행하는 대신 작게 나눠진 윈도우 단위로 항목들을 배출한다
Filtering Observables
- Debounce — Observable의 시간 흐름이 지속되는 상태에서 다른 항목들은 배출하지 않고 특정 시간 마다 그 시점에 존재하는 항목 하나를 Observable로부터 배출한다
- Distinct — Observable이 배출하는 항목들 중 중복을 제거한 항목들을 배출한다
- ElementAt — Obserable에서 n번째 항목만 배출한다
- Filter — 테스트 조건을 만족하는 항목들만 배출한다
- First — 맨 첫 번째 항목 또는 조건을 만족하는 첫 번째 항목만 배출한다
- IgnoreElements — 항목들을 배출하지는 않고 종료 알림은 보낸다
- Last — Observable의 마지막 항목만 배출한다
- Sample — 특정 시간 간격으로 최근에 Observable이 배출한 항목들을 배출한다
- Skip — Observable이 배출한 처음 n개의 항목들을 숨긴다
- SkipLast — Observable이 배출한 마지막 n개의 항목들을 숨긴다
- Take — Observable이 배츨한 처음 n개의 항목들만 배출한다
- TakeLast — Observable이 배출한 마지막 n개의 항목들만 배출한다
Combining Observables
- And/Then/When — 두 개 이상의 Observable들이 배출한 항목들을 'Pattern'과 'Plan' 중계자를 이용해서 결합한다
- CombineLatest — 두 개의 Observable 중 하나가 항목을 배출할 때 배출된 마지막 항목과 다른 한 Observable이 배출한 항목을 결합한 후 함수를 적용하여 실행 후 실행된 결과를 배출한다
- Join — A Observable과 B Observable이 배출한 항목들을 결합하는데, 이때 B Observable은 배출한 항목이 타임 윈도우를 가지고 있고 이 타임 윈도우가 열린 동안 A Observable은 항목의 배출을 계속한다. Join 연산자는 B Observable의 항목을 배출하고 배출된 항목은 타임 윈도우를 시작시킨다. 타임 윈도우가 열려 있는 동안 A Observable은 자신의 항목들을 계속 배출하여 이 두 항목들을 결합한다
- Merge — 복수 개의 Observable들이 배출하는 항목들을 머지시켜 하나의 Observable로 만든다
- StartWith — 소스 Observable이 항목을 배출하기 전에 다른 항목들을 앞에 추가한 후 배출한다
- Switch — Observable들을 배출하는 Observable을 싱글 Observable로 변환하다. 변환된 싱글 Observable은 변환 전 소스 Observable들이 배출한 항목들을 배출한다
- Zip — 명시한 함수를 통해 여러 Observable들이 배출한 항목들을 결합하고 함수의 실행 결과를 배출한다
Error Handling Operators
- Catch — 오류를 무시하고 배출되는 항목들을 계속 진행시켜 'onError'로부터 전달된 오류를 복구한다
- Retry — 만약 소스 Observable이 'onError' 알림을 보낼 경우, 오류 없이 실행이 완료되기를 기대하며 재구독을 시도한다
Observable Utility Operators
- Delay — Observable의 배출을 특정 시간동안 미룬다
- Do — Observable의 생명주기 동안 발생하는 여러 이벤트에서 실행 될 액션을 등록한다
- Materialize/Dematerialize — 배출된 항목이 어떤 알림을 통해 옵저버에게 전달 됐는지를 표현하며, 그 반대 과정을 수행할 수 있다
- ObserveOn — 옵저버가 어느 스케줄러 상에서 Observable을 관찰할지 명시한다
- Serialize — Observable이 직렬화된 호출을 생성하고 제대로 동작하도록 강제한다
- Subscribe — Observable이 배출하는 항목과 알림을 기반으로 동작한다
- SubscribeOn — Observable을 구독할 때 사용할 스케줄러를 명시한다
- TimeInterval — 항목들을 배출하는 Observable을, 항목을 배출하는데 걸린 시간이 얼마인지를 가리키는 Observable로 변환한다
- Timeout — 소스 Obvservable을 그대로 전달하지만, 대신 특정 시간 동안 배출된 항목이 없으면 오류 알림을 보낸다
- Timestamp — Observable이 배출한 항목에 타임 스탬프를 추가한다
- Using — 소스 Observable과 동일한 생명주기를 갖는 Observable을 생성하는데, 이 Observable은 생명주기가 완료되면 리소스를 종료하고 반환한다
Conditional and Boolean Operators
- All — Observable이 배출한 전체 항목들이 어떤 조건을 만족시키는지 판단한다
- Amb — 두 개 이상의 소스 Observable이 주어 질때, 그 중 첫 번째로 항목을 배출한 Observable이 배출하는 항목들을 전달한다
- Contains — Observable이 특정 항목을 배출하는지 아닌지를 판단한다
- DefaultIfEmpty — 소스 Observable이 배출하는 항목을 전달한다. 만약 배출되는 항목이 없으면 기본 항목을 배출한다
- SequenceEqual — 두 개의 Observable이 항목을 같은 순서로 배출하는지 판단한다
- SkipUntil — 두 번째 Observable이 항목을 배출하기 전까지 배출된 항목들을 버린다
- SkipWhile — 특정 조건이 false를 리턴하기 전까지 Observable이 배출한 항목들을 버린다
- TakeUntil — 두 번째 Observable이 항목을 발행하기 시작햤거나 두 번째 Observable이 종료되면 그 때부터 발행되는 항목들은 버린다
- TakeWhile — 특정 조건이 false를 리턴하기 시작하면 그 이후에 배출되는 항목들을 버린다
Mathematical and Aggregate Operators
- Average — Observable이 발행한 항목의 평균 값을 발행한다
- Concat — 두 개 이상의 Observable들이 항목을 발행할 때 Observable 순서대로 배출하는 항목들을 하나의 Observable 배출로 연이어 배출한다
- Count — 소스 Observable이 발행한 항목의 개수를 배출한다
- Max — Observable이 발행한 항목 중 값이 가장 큰 항목을 배출한다
- Min — Observable이 발행한 항목 중 값이 가장 작은 항목을 배출한다
- Reduce — Observable이 배출한 항목에 함수를 순서대로 적용하고 함수를 연산한 후 최종 결과를 발행한다
- Sum — Observable이 배출한 항목의 합계를 배출한다
Backpressure Operators
- backpressure operators — 옵저버가 소비하는 것보다 더 빠르게 항목들을 생산하는 Observable을 복재하는 전략
Connectable Observable Operators
- Connect — 구독자가 항목 배출을 시작할 수 있도록 연결 가능한 Observable에게 명령을 내린다
- Publish — 일반 Observable을 연결 가능한 Observable로 변환한다
- RefCount — 일반 Observable처럼 동작하는 연결 가능한 Observable을 만든다
- Replay — 비록 옵저버가 Observable이 항목 배출을 시작한 후에 구독을 했다 하더라도 배출된 모든 항목들을 볼 수 있도록 한다
Operators to Convert Observables
- To — Observable을 다른 객체나 자료 구조로 변환한다
http://reactivex.io/documentation/operators.html
'Tech > RxSwift' 카테고리의 다른 글
RxSwift _ Subject (0) | 2019.06.25 |
---|---|
RxSwift _ Single (0) | 2019.06.20 |
RxSwfit _ Scheduler (0) | 2019.06.20 |
RxSwift _ Observable (0) | 2019.06.18 |
- Total
- Today
- Yesterday
- objc
- Xcode
- stanford SwiftUI
- ios
- rxswift
- Deep learning
- 알고리즘
- ARC
- wwdc
- iOS SwiftUI
- leetcode
- 문자열
- RX
- 딥러닝
- ReactiveX
- 책
- 스위프트UI
- 독서
- 스위프트
- 애니메이션
- objective-c
- SWIFT
- swift5
- 머신러닝
- 책 추천
- Algorithm
- 책 후기
- string
- swiftUI
- Animation
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |