Thuta Learning
ရှာဖွေရန်
AdvancedWeb Developmentintermediate

Subject & BehaviorSubject

စိတ်လျှော့ပါ။ ဒီခန်းကို စာအုပ်လိုမဟုတ်ဘဲ စကားပြောသလိုပဲ၊ နားလည်လွယ်အောင် ရှင်းပါမယ်။

Subject သည် Observable ဖြစ်သည့်အပြင် Observer လည်းဖြစ်သည်။ BehaviorSubject သည် current value ကို store လုပ်ထားပြီး new subscribers များကို ချက်ချင်းပေးသည်။

typescript
import { Subject, BehaviorSubject } from 'rxjs';

// Subject - simple event bus
const subject = new Subject<string>();

subject.subscribe(val => console.log('Subscriber 1:', val));
subject.next('Hello');  // Subscriber 1: Hello

subject.subscribe(val => console.log('Subscriber 2:', val));
subject.next('World');  // Both subscribers receive 'World'

// BehaviorSubject - has initial value, remembers last value
const behaviorSubject = new BehaviorSubject<number>(0);

behaviorSubject.subscribe(val => console.log('Sub A:', val));  // Sub A: 0
behaviorSubject.next(1);  // Sub A: 1

// New subscriber gets last value immediately
behaviorSubject.subscribe(val => console.log('Sub B:', val));  // Sub B: 1

// Real example: Shared state service
@Injectable({ providedIn: 'root' })
export class UserStateService {
  private userSubject = new BehaviorSubject<User | null>(null);
  user$ = this.userSubject.asObservable();
  
  setUser(user: User) {
    this.userSubject.next(user);
  }
}
You should see
(Subject/BehaviorSubject များသည် components များအကြား data sharing အတွက် အသုံးပြုနိုင်သည်)
Subject & BehaviorSubject | Thuta Learning