• 카테고리

    질문 & 답변
  • 세부 분야

    프론트엔드

  • 해결 여부

    미해결

defer의 사용처가 조건에 따른 옵저버블 생성이 맞나요?

21.06.13 15:14 작성 조회수 157

0

https://rxjs.dev/api/index/function/defer

위 공식문서에 따르면 아래와 같이 설명되어있습니다.

Creates the Observable lazily, that is, only when it is subscribed.

defer allows you to create an Observable only when the Observer subscribes.

공식문서 예제에서의 팩토리 함수는 조건에 따라 옵저버블을 생성하는 것이지만 팩토리 함수가 꼭 조건에 따라 다른 옵저버블을 생성할 필요는 없는 것 같아요.

그저 레이지하게(옵저버가 옵저버블을 구독할 때) 옵저버블을 만들어 내는 함수로 이해됩니다.

답변 1

답변을 작성해보세요.

1

네, 문서의 정의에 의하면 그렇습니다.  그런데 그 정의만으로는 이 기능이 실제 어떤 목적으로 사용할 수 있는지 알기 어렵습니다.

제가 조건에 관한 내용을 추가한 이유는, defer의 그러한 특성으로 인해 활용의 측면에서 옵저버블이 생성되는 순간의 상태값에 의해 그에 맞는 옵저버블을 추가할 수 있다는 이점이 생기기 때문입니다.  많은 상황에서 defer가 사용되는 이유이기도 하구요.  실제 사용에서 적용될 수 있는 부분을 말씀드린거죠.

다만 이렇게 설명해놓으니 옵저버블을 필요시에만 생성함으로 컴퓨터 자원을 아낄 수 있는 측면이 드러나지 않았겠다는 생각이 드네요.  이 부분은 페이지에 추가하여 부연설명하도록 하겠습니다.  감사합니다.