이제 Angular에 대한 대략적인 개념은 잡고 가는거 같다. 사실 더 많은 내용이 있지만, 전부 정리 하기에는 부담되서 여기까지만 하려고 한다. 아마도 다음 정리는 프로메테우스와 그라파나로 모니터링 환경 구축을 한 내용을 정리할 것 같다. 사실 필요하다고 해서 개념 정리하고 환경 구축까지 해놨는데 사용 안 해서 섭섭하고 있다...
알림타입 | 설명 |
---|---|
next | 데이터스트림을 처리하는 핸들러 |
error (option) | 에러 스트림을 처리하는 핸들러 |
complete (option) | 옵저저블 종료 스트림을 처리하는 핸들러 |
const myObservable = of(1, 2, 3); // of는 observable한 객체로 반환
const myObserver = {
next: (x: number) => console.log('Observer got a next value: ' + x),
error: (err: Error) => console.error('Observer got an error: ' + err),
complete: () => console.log('Observer got a complete notification'),
};
// .
myObservable.subscribe(myObserver);
// :
// Observer got a next value: 1
// Observer got a next value: 2
// Observer got a next value: 3
// Observer got a complete notification
옵저버블의 구독에 옵저버 객체를 인자로 넣는 방식 말고, 바로 핸들러 함수를 넘기는 방법도 사용 가능
옵저버블 스트림 생성은 Observable 생성자를 통해 만들고, 이 때 구독자 함수를 인자로 받는다. 해당 구독자 함수는 Observer 객체 를 인자로 받고 Observer의 next 함수를 통해 옵저버블 스트림을 발행
// subscribe() .
function sequenceSubscriber(observer: Observer<number>) {
// 1, 2, 3 , .
observer.next(1);
observer.next(2);
observer.next(3);
observer.complete();
return {unsubscribe() {}};
}
// Observable .
const sequence = new Observable(sequenceSubscriber);
sequence.subscribe({
next(num) { console.log(num); },
complete() { console.log('Finished sequence'); }
});
// :
// 1
// 2
// 3
// Finished sequence
공통점
차이점