# rxjs

RxJS 스터디 시리즈
요즘 ChatGPT가 인기 좋다. 그래서 배우고싶은 부분을 ChatGPT를 활용하여 배워볼려고 한다. 이 시리즈는 ChatGPT 기반으로 학습했을때 가능성이 있는지 자가진단 테스트이므로, 보기 불편 할 수가 있습니다. > 참고로 ChatGPT 유료결재가 진행된 상태
(비동기) RxJS With Typescript
RxJs는 filter, map, take, skip 등과 같은 유용한 체이닝 함수들을 제공한다. 또는, Observer 패턴을 통해, 여러 사용자가 값을 구독하고, 감시하는 형태의 비동기 프로그래밍 코딩 스타일을 제공한다.
옵저버블
addEventListener는 이벤트를 처리하기위해 콜백을 인자로 등록해야 하지만 옵저버블패턴은 처리방식이 다르다.이벤트를 옵저버블화하면 옵저버블객체가 반환된다. 이단계는 함수선언과 같이 옵저버블을 선언한것일 뿐이다.addEventListener함수는 이벤트와 콜백을
catchError / throwError
catchError operator오퍼레이터로서 가공과정에서 던져진 error를 처리하며 옵저버블을 반환하는 핸들러를 인자로 한다.위와같이 catchError에서 다른 옵저버블객체를 반환할 수 도 있고 에러객체유형을 구분하여 err은 any타입 에러객체이고 caught
mergeMap
ajax는 옵저버블을 반환하므로 map반환값은 high order observable타입이 되어 map을 사용하면 두번 구독해야 한다.mergeMap은 high order observable타입이 반환될때 사용하는 map오퍼레이터와 같다.
ajax
url에 ajax를 사용하면 Response타입의 객체를 옵저버블을 반환받는다.map을 사용해서 response객체의 response프로퍼티를 반환할 수 있다.구독함수에서 response프로퍼티를 받아 사용할 수 있다.ajax.getJSON를 사용하면 Response객
timer
주어진시간후에 방출을 시작하는 옵저버블객체를 반환하는 함수다.delay는 오퍼레이터1초후에 0을 방출하고 완료한다.1초후에 새로운 옵저버블객체가 방출시작한다.
switchMap
map처럼 방출데이터를 원하는 형태로 가공한다.mergeMap처럼 내부반환되는 옵저버블객체를 평탄화한다.map에 시간개념이 추가되면 map에의해 가공된 데이터들이 방출완료되기전에 원 데이터가 방출되면 진행되던 map데이터방출은 취소되고 원 데이터가 방출시작되며 map가
map, mergeMap
원시값형태의 옵저버블객체에 map오퍼레이터를 사용하는데 원시값을 반환하지 않고 옵저버블객체를 반환하면 Observable<Observable< number>>의 이중구조가 된다.이러한 옵저버블객체도 사용가능하지만 구독함수를 2번연결해야 원하는 데이터를 얻을

Rxjs 한번 배워보실래요?
나: "그래서 RxJs를 대체 할 만한게 있을까요?" > 크루: "솔직히 비동기나 시간을 다루는 데에는 Rxjs를 대체 할 만한게 없긴 하죠. 진짜 좋다고 생각해요. ... 배우기 어려워서 그렇지. 웬만한 개발자들은 배워야 할 이유를 납득하는 것 부터 어려울걸요?" >
catchError
옵저버블에서 발생된 에러가 발생했을때 새로운 옵저버블을 반환하거나 에러를 던진다.map함수에서 옵저버블이 에러를 발생시키면 catchError가 에러를 감지하여 함수가 처리한다.err은 any타입 에러객체이고 caught는 원 옵저버블소스이며 에러처리함수에서 에러를 처
from, of 차이
유사배열객체, promise, 이터러블객체등으로부터 옵저버블객체를 생성한다.옵저버블객체내 원소들은 더이상 배열구조가 아니고 차례로 존재하는 데이터이며 차례로 방출한다. 비동기데이터가 아니면 동기적으로 수행된다.1,2,3개의 숫자를 가진 옵저버블객체를 생성한다.배열을