Skip to content

Instantly share code, notes, and snippets.

@traviskaufman
Created October 18, 2019 18:52
Show Gist options
  • Save traviskaufman/5464bdf54a32503fa2f705d0ce5344bb to your computer and use it in GitHub Desktop.
Save traviskaufman/5464bdf54a32503fa2f705d0ce5344bb to your computer and use it in GitHub Desktop.
Demystifying RxJS, Part I: fromEvent()
function fromEvent<T extends Event = Event>(
target: EventTarget,
eventName: string
): Observable<T> {
return new Observable(obs => {
const listener: EventListener = (evt: T) => {
obs.next(evt);
};
target.addEventListener(eventName, listener);
return () => target.removeEventListener(eventName, listener);
});
}
// Every time `btn` is clicked, logs "click"
fromEvent(btn, "click").subscribe(() => console.log("click"));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment