안녕하세요! 왈라비🦘 입니다 😙

이번 시간에는 deferred 에 대해서 알아보도록 하겠습니다.

<aside> 💡 이름에서 부터 알 수 있듯이 무언가를 "미루다" 라는 의미로 사용되는 연산자 입니다. deferredObservable이 생성되는 시점을 구독자에 의해서 구독되기 전까지 미뤄주는 역할을 합니다.

</aside>

사용방법


우선 아래 deferred의 선언부를 보시면 Observable을 리턴해준다는 사실을 알 수 있습니다.

public static func deferred(_ observableFactory: @escaping () throws -> Observable<Element>)

deferredObservable에서 직접 호출이 가능한데요.

let deferredObservable = Observable<String>.deferred {
		//여기에서 **Observable**을 리턴해주면 됩니다.
}

위처럼 deferred클로저 내에서 실제로 구독할 Observable을 리턴해주면 됩니다.

원래 같으면 아래와 같이 사용하는 Observable을 구독과 동시에 연산하도록 미루고 싶다면

let observable = Observable.just("Avocado🥑")