hsunny study blog

fromEvent() 본문

programming/RxJS

fromEvent()

헤써니 2019. 7. 20. 00:36

fromEvent

이벤트 타겟으로부터 오는 특정한 타입의 이벤트를 방출하는 옵저버블을 만듭니다.

튜토리얼 바로가기

 

fromEvent<T>(target: FromEventTarget<T>, eventName: string, options?: EventListenerOptions | ((...args: any[]) => T), resultSelector?: ((...args: any[]) => T)): Observable<T>

example

fromEvent(target: FromEventTarget<T>, eventName: string): Observable<T>

1
2
const clicks = fromEvent(document'click');
clicks.subscribe(x => console.log(x));

 

fromEvent(target: FromEventTarget<T>, eventName: string, options: EventListenerOptions): Observable<T>
1
2
3
4
5
const clicksInDocument = fromEvent(document'click', {
  capture: false,
  once: false,
  passive: false
});
 

 

1
const clicksInDocument = fromEvent(document'click'true); // note optional configuration parameter

↑ 캡쳐옵션 준 것

 

fromEvent(target: FromEventTarget<T>, eventName: string, resultSelector: (...args: any[]) => T): Observable<T>

1
fromEvent(this.$layer, "click", (evt)=>evt.target.closest("li"));

 

fromEvent(target: FromEventTarget<T>, eventName: string, options: EventListenerOptions, resultSelector: (...args: any[]) => T): Observable<T>

 

세번째 파라미터의 경우 들어오는 타입에 따라 fromEvent 가 다르게 인식합니다.

- 함수인 경우EventListenerOptions로 인식

- 객체인 경우는 EventListener 옵션으로 인식

 

EventListenerOptions

addEventListener의 3번째 자리에 캡처링 버블링 여부를 제어하는 옵션을 줄 수 있습니다.

객체형태로 추가옵션을 넣을 수 있는데, 이 객체형태의 옵션이 EventListenerOptions입니다.

 

EventListenerOptions 사용 전

1
document.addEventListener('touchstart', handler, false);

 

EventListenerOptions 사용 후

1
2
3
4
5
document.addEventListener("touchstart", handler, {
  capture: false,
  once: false,
  passive: false
});
 

 

EventListenerOptions에 대해 자세히 알아볼 수 있는 사이트 바로가기

EventListenerOptions/explainer.md 바로가기

 

[참고]

- RxJS 퀵스타트 서적

- 하이퍼링크들