BehaviorSubject RxJS

agnusdei·2023년 7월 11일
0

BehaviorSubject는 주로 상태 관리 및 이벤트 통지를 위해 사용됩니다. 이를 통해 애플리케이션의 상태를 추적하고 구성 요소 간에 상태를 공유하며, 데이터 스트림의 변경 사항을 관찰자에게 알릴 수 있습니다. 이제 코드 예시를 통해 BehaviorSubject의 사용을 분석해보겠습니다.

import { BehaviorSubject } from 'rxjs';

// BehaviorSubject 생성
const subject = new BehaviorSubject('initial value');

// 구독자 1
subject.subscribe((value) => {
  console.log('Subscriber 1:', value);
});

// 현재 값 출력
console.log('Current value:', subject.getValue());

// BehaviorSubject 업데이트
subject.next('updated value');

// 구독자 2
subject.subscribe((value) => {
  console.log('Subscriber 2:', value);
});

// BehaviorSubject 업데이트
subject.next('new value');

위 코드는 JavaScript에서 BehaviorSubject를 사용하는 간단한 예시입니다.

먼저, BehaviorSubject를 생성하고 초기값으로 'initial value'를 설정합니다. 그런 다음 첫 번째 구독자(subscriber)를 생성하여 해당 값이 변경될 때마다 로그를 출력하도록 합니다.

이어서 subject.getValue()를 사용하여 현재 값에 접근하여 출력합니다. 현재 값은 'initial value'이므로 이를 출력합니다.

다음으로 subject.next('updated value')를 호출하여 BehaviorSubject를 업데이트합니다. 이는 현재 값을 'updated value'로 변경하고, 모든 구독자에게 변경 사항을 알립니다. 첫 번째 구독자는 'updated value'를 수신하고 로그를 출력합니다.

그 후 두 번째 구독자를 생성하고, 이제부터는 두 구독자가 동일한 값을 받게 됩니다. 이후 subject.next('new value')를 호출하여 BehaviorSubject를 다시 업데이트하고, 두 구독자 모두 'new value'를 수신하여 로그를 출력합니다.

이 코드의 목적은 다음과 같습니다:
1. BehaviorSubject를 사용하여 상태를 관리하고 초기값을 설정합니다.
2. 구독자 1과 구독자 2가 BehaviorSubject를 구독하여 현재 값과 변경 사항을 받아옵니다.
3. BehaviorSubject를 업데이트하여 변경 사항을 알립니다.

이 예시는 단순화된 형태로 BehaviorSubject를 사용한 것입니다. 실제 애플리케이션에서는 BehaviorSubject를 활용하여 복잡한 데이터 스트림을 관리하고 구독자 간에 데이터를 공유하는 데 사용될 수 있습니다.

0개의 댓글