post-custom-banner
import { Component, OnInit } from '@angular/core';

// ① RxJS 임포트
import { Observable, fromEvent } from 'rxjs';

export class AppComponent implements OnInit {
  mousePositon$ :Observable<Event>;
  posX: number = 0; // 옵저버
  posY: number = 0;

  ngOnInit() {
    // ② 옵저버블의 생성(DOM 마우스 이동 이벤트를 옵저버블로 변환)
    this.mousePositon$ = fromEvent(document, 'mousemove');

    // ③ 옵저버는 옵저버블을 구독하고 옵저버블이 방출한 데이터를 전파받아 사용한다.
    this.mousePositon$ 
      .subscribe(
        (event: MouseEvent) => {
          this.posX = event.clientX;
          this.posY = event.clientY;          
        }, 
        error => console.log(error),
        () => console.log('complete!')      
      );
  }
}
post-custom-banner

0개의 댓글