일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- graphql
- @State
- Bug
- Operater
- URL(string:)
- NullObject
- init?
- NavigationLink
- RFC1738/1808
- @EnvironmentObject
- nestjs
- Xcode
- dismiss
- Creating Operators
- IOS
- SwiftUI
- SWIFT
- ios14
- vim
- init
- @Environment
- nonisolated
- typeorm
- RxSwift
- Operators
- @Binding
- swift6
- operator
- RxCocoa
- subject
- Today
- Total
목록subject (5)
Tunko Development Diary
AsyncSubject 는 이벤트가 전달되는 시점이 다릅니다. 구독한 시점에 이벤트가 전달되는것이 아닌 Complite 이벤트가 전달되면 가장 마지막 이벤트가 전달됩니다. let disposeBag = DisposeBag() enum MyError: Error { case error } let subject = AsyncSubject() subject .subscribe { print($0) } .disposed(by: disposeBag) subject.onNext(1) subject.onNext(2) subject.onNext(3) subject.onCompleted() //subject.onError(MyError.error) 출력 next(3) completed 만약 onCompleted가 아닌 ..
ReactiveX - Subject ReplaySubject는 create메서드를 통해 생성합니다. 생성시 이벤트의 버퍼의 크기를 지정합니다. 버퍼는 메모리에 할당하기 때문에 버퍼크기를 잘 고려해야 합니다. 낭비는 없도록 해줍니다. let disposeBag = DisposeBag() enum MyError: Error { case error } let replaySubject = ReplaySubject.create(bufferSize: 5) (1...10).forEach { replaySubject.onNext($0) } replaySubject.subscribe{ print("next Event : \\($0)")} .disposed(by: disposeBag) 출력 next Event : next..
BehaviorSubject는 기능상으로 PublishSubject와 큰 차이가 없습니다. 하지만 생성 및 구독을 할때 차이가 있습니다. 바로 예제 코드와 로그를 통해 알아보겠습니다. let disposeBag = DisposeBag() enum MyError: Error { case error } let publishSubject = PublishSubject() publishSubject.subscribe {print("publishSubject : \\($0)")} publishSubject.disposed(by: disposeBag) let behaviorSubject = BehaviorSubject(value: 1) behaviorSubject.subscribe {print("behaviorSu..
ReactiveX - Subject PublishSubject의 가장큰 특징은 옵저버의 구독 이후에 이벤트를 받을 수 있습니다. let disposeBag = DisposeBag() enum PublishSubjectError: Error { case error } // String타입을 받는 PublishSubject 생성 let subject = PublishSubject() subject.onNext("구독전") 먼저 subject는 옵저버와 옵저버블의 기능을 동시에 가지고 있습니다. 그래서 이벤트를 넘겨줄수 있습니다. 위 코드처럼 구독전에 subject에서 onNext 이벤트를 넘기면 아무런 이벤트도 받을 수 없습니다. 이후에 구독 코드를 추가해 줍니다. let subject = PublishSu..
ReactiveX - Subject Subject는 옵저버블의 기능과 옵저버의 기능을 같이 가지고 있습니다. 옵저버블은 옵저버에게 이벤트를 방출합니다. 옵저버는 옵저버블을 구독합니다. 하지만 옵저버가 이벤트를 방출 할 수 없고 옵저버블또한 옵저버를 구독할 수 없습니다. 이것을 가능하게 하는 두가지의 기능을 함께 가지고있는게 Subject입니다. Subject의 종류 및 특징 PublishSubject Subject로 전달되는 이벤트를 구독자로 전달합니다. BehaviorSubject 생성 시점에 시작 이벤트를 지정합니다. 전달받은 이벤트중에 가장 마지막 이벤트를 저장해 두었다가 새로운 구독자에게 최신이벤트로 방출합니다. ReplaySubject 하나 이상의 최신 이벤트를 버퍼에 저장합니다. 옵저버가 구독..