일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- subject
- nestjs
- dismiss
- typeorm
- Xcode
- RxCocoa
- nonisolated
- swift6
- URL(string:)
- Bug
- vim
- IOS
- @State
- graphql
- Creating Operators
- SwiftUI
- init
- NullObject
- RFC1738/1808
- NavigationLink
- ios14
- @Environment
- @Binding
- @EnvironmentObject
- SWIFT
- operator
- Operators
- init?
- Operater
- RxSwift
- Today
- Total
목록Development/RxSwift (36)
Tunko Development Diary
multicast multicast 연산자는 하나의 옵저버블을 공유할떄 사용하는 연산자입니다. 하지만 서브젝트를 따로 생성하고 이벤트가 방출되길 원하는 시점에 .connect() 를 호출해 주어야 합니다. 함수 원형 public func multicast(_ subject: Subject) -> ConnectableObservable where Subject.Observer.Element == Element { ConnectableObservableAdapter(source: self.asObservable(), makeSubject: { subject }) } 멀티캐스트 연산자는 서브젝트를 전달받습니다. 원본 옵저버블에서 발생하는 이벤트는 구독자로 전달되는게 아니라 전달한 서브젝트로 이벤트가 전달됩니다..
delay delay연산자는 Next 이벤트의 전달을 지연시킵니다. Observable.interval(.seconds(1), scheduler: MainScheduler.instance) .take(10) .debug() .delay(.seconds(5), scheduler: MainScheduler.instance) .subscribe { print(Date(), $0)} .disposed(by: bag) 출력 2022-06-07 16:35:05.311: delay.playground:41 (__lldb_expr_36) -> subscribed 2022-06-07 16:35:06.314: delay.playground:41 (__lldb_expr_36) -> Event next(0) 2022-06-0..
timer timer는 interval 연산자와 다르게 시작 시간을 지정할 수 있습니다. public static func timer(_ dueTime: RxTimeInterval, period: RxTimeInterval? = nil, scheduler: SchedulerType) -> Observable { return Timer( dueTime: dueTime, period: period, scheduler: scheduler ) } dueTime는 구독자에게 이벤트 전달되는 시작 시간입니다. preiod: 파라미터가 반복주기입니다. let disposBag = DisposeBag() print("시작 : \\(Date())") Observable.timer(.seconds(1), period: ...
interval 일정 주기마다 정수를 방출하는 옵저버블 입니다. public static func interval(_ period: RxTimeInterval, scheduler: SchedulerType) -> Observable { return Timer( dueTime: period, period: period, scheduler: scheduler ) } period: RxTimeInterval 타입은 RxAbstractInteger 입니다. FixedWidthInteger 의 별칭으로 선언되어있습니다. 코드 참조 public typealias RxAbstractInteger = FixedWidthInteger Apple Developer Documentation period 은 쉽게 말해서 In..
amb amb연산자는 두개 이상의 옵저버블 중에 먼저 이벤트가 발생한 것에서만 구독을 합니다. 이후 다른 옵저버에서 Next이벤트가 발생해도 무시됩니다. let disposeBag = DisposeBag() enum TunkoError: Error { case error } let subject1 = PublishSubject() let subject2 = PublishSubject() let subject3 = PublishSubject() Observable.amb([subject1, subject2, subject3]) // subject1.amb(subject2) // 두개의 옵저버블일때 문법 .subscribe { print($0) } .disposed(by: bag) subject1.onNex..