리액티브 프로그래밍은 “데이터 스트림” 과 “변화 전파”와 연관된 선언적 프로그래밍 패러다임이다.데이터스트림이란?데이터스트림은 Observable sequences개념으로 지속적으로 관찰할 수 있는 흐름을 가진 데이터라고 할 수 있다.데이터스트림에 비동기개념이 더해지면
RxJS는 이벤트기반 프로그래밍에서 함수형 프로그래밍을 이용해 보다 선언적으로 이벤트를 처리할 수 있다.RxJS는 모든 이벤트를 observable로 추상화하여 시간에따른 데이터스트림으로 처리가능하다.각 이벤트가 observer(이벤트핸들러)에게 전파되기 전에 map,
ajaxsignature: ajax(urlOrRequest: string | AjaxRequest)URL, 헤더 등을 사용하여 요청 객체를 사용하거나 URL의 문자열을 사용하여 Ajax 요청에 대한 옵저버블을 생성합니다.bufferTime제공된 시간이 지날 때까지 방출
스트림이 만들어지려면 소스가 있어야 한다. 소스는 이벤트일수도 있고 데이터일수도 있다.스트림을 만드는 방법은 여러가지이며 소스유형에따라 달라진다.만들어진 스트림에 스트림.subscribe 메소드가 설정되면 스트림은 스트림에 들어있는 값들을 방출하기 시작한다.observ
구독취소는 스트림에서 방출하지 않게한다.subscription = interval(1000).subscribe(console.log);subscription.unsubscribe();setInterval함수와 observer.next(count++)를 내부에서 작동시
소스 스트림으로부터 방출된 값들을 새로운 스트림에 추가한뒤, 방출요청시 하나의 배열로 방출한다.buffer(closingNotifier: Observable): OperatorFunction<T, T\[]>
Buffers the source Observable values until the size hits the maximum bufferSize given소스 스트림의 방출값을 주어진 버퍼사이즈만큼 버퍼에 채운후 방출한다.1,2,3 / 4,5,6 / 71,2,3
소스 스트림으로부터 값이 방출된후 throttle함수에서 정해진 시간내에 있는 데이터는 방출하지 않고 무시하며 정해진 시간후에 존재하는 데이터는 방출한다.옵션leading 처음 시작하는 값의 방출여부 trailing 무시되는 마지막 값의 방출여부
소스 스트림의 데이터방출시간 유효시간을 정한다.데이터가 방출시점이 되었을때 정해진 방출유효시간을 초과하였을때 방출한다.따라서 방출유효시간내에 이후 데이터가 방출시점에 도달하면 이전 데이터는 무시된다.
map return val; map함수가 return하는 값이 observable을 생성해서 반환한다map함수에의해 생성해서 반환된는 observable내에 ajax.getJSON이 생성하는 observable이 존재한다.subscribe를 2번해야 한다.
위코드는 high order observable을 만들기때문에 subscribe를 2번해야 한다.pipe에 mergeMap을 사용하여 subscribe를 1번만 하면 된다.mergeMap을 바로 사용하면 된다.
RxJS에서 Subject는 Observable과 비슷하지만 여러개의 Observable을 멀티방출할 수 있다. Subject는 이벤트전파자와 유사하며 많은 수의 핸들러들을 관리할 수 있다. 모든 Subject은 하나의 Observable이며 Subject들은 또한
cold observable : uni cast hot observable : multi cast setTimeout으로
어떤 컴포넌트내에 버튼이 있고 버튼클릭이벤트가 발생했을때 화면전체에있는 컴포넌트가 전부 랜더링된다.이렇게되면 많은 컴포넌트내 프로퍼티바인딩된것들이 전부 이벤트가 발생한다.....시스템자원을 많이 소모하고 느려질것 같은데......
anounceStream$ = new Observable< string>();소스데이터없이 옵저버블객체를 만들고 나중에 어떻게 옵저버를 옵저버블에 연결하지?????
유사배열객체, promise, 이터러블객체등으로부터 옵저버블객체를 생성한다.옵저버블객체내 원소들은 더이상 배열구조가 아니고 차례로 존재하는 데이터이며 차례로 방출한다. 비동기데이터가 아니면 동기적으로 수행된다.1,2,3개의 숫자를 가진 옵저버블객체를 생성한다.배열을
옵저버블에서 발생된 에러가 발생했을때 새로운 옵저버블을 반환하거나 에러를 던진다.map함수에서 옵저버블이 에러를 발생시키면 catchError가 에러를 감지하여 함수가 처리한다.err은 any타입 에러객체이고 caught는 원 옵저버블소스이며 에러처리함수에서 에러를 처
tap오퍼레이터에 성공과 실패에따라 수행할 작업을 구분할 수 있다.