Question 82
Question
Answer
class Observable {
constructor() {
this._observers = [];
}
subscribe(observer) {
this._observers.push(observer);
return { unsubscribe: () => this._observers = this._observers.filter(o => o !== observer) };
}
notify(value) {
this._observers.forEach(observer => observer.next(value));
}
}
class Observer {
constructor() { }
next(value) {
console.log('Received value:', value); // Handle new data
}
error(err) {
console.error('Error:', err);
}
complete() {
console.log('Observable completed.');
}
}
// Usage:
const observable = new Observable();
const observer1 = new Observer();
const observer2 = new Observer();
const subscription1 = observable.subscribe(observer1);
const subscription2 = observable.subscribe(observer2);
observable.notify('Hello!'); // Both observers receive "Hello!"
subscription1.unsubscribe();
observable.notify('World!'); // Only observer2 receives "World!"Last updated