[RxSwift] Traits

sun02·2022년 3월 2일
0

RxSwift

목록 보기
11/12

Trait이란?

  • 일반적인 observable보다 좁은 범위의 observable
  • 단일 읽기 전용 observable을 가지는 구조체

Trait을 사용하는 이유

  • 코드의 가독성을 높이고 sequence 속성을 보장
  • 개발자의 의도를 더 잘 나타낼 수 있음
  • Syntactical sugar를 제공하여 가독성을 높임

Trait의 종류

  • Single
  • Maybe
  • Completable

1. Single

success 또는 error 이벤트를 한 번만 방출하는 observable

파일 저장, 다운로드, 데이터 로딩 등과 같이 값을 산출하는 비동기적 연산에 사용됩니다.

사진을 저장하느냐? 혹은 에러가 나느냐?와 같이
정확히 한가지의 요소만 방출하는 연산자를 매핑할 때 유용합니다.

옵져버블의 just처럼
single은 이벤트를 하나 방출시킨 다음에 완전히 종료됩니다.

옵져버블에 as single을 붙여 single로 변환하거나
Single.create 로 바로 생성할 수 있습니다.

2. Maybe

single과 유사하지만 succes, error, completed 이벤트를 방출하는 observable

completed => 성공하더라도 아무것도 방출하지 않음

반드시 element를 방출하지 않아도 되는 경우에 사용될 수 있습니다.
단일 element를 방출하거나, element방출 없이 종료되거나, 에러를 방출하고 종료될 수 있습니다.

옵져버블에 as Maybe를 붙여 maybe로 변환하거나
Maybe.create로 생성할 수 있습니다.

3. Completable

complete나 error 이벤트를 방출하는 observable

completable은 어떠한 값도 방출하지 않습니다.
연산의 결과(데이터)는 중요하지 않고 연산의 성공여부를 확인해야할 때 사용됩니다.

single과 maybe처럼 as ~~를 붙여 옵져버블을 completable로 바꿀 수는 없습니다.

  • completable은 completed와 error만을 방출하기 때문에 값요소를 방출하지 않기 때문입니다.

completable.create 로 생성할 수 있습니다.

출처 - Medium(RxSwift Traits)

0개의 댓글