다음은 구독 할 때 값 1 , 2 , 3 을 즉시 (동기식으로) 푸시 하고 구독 호출 이후 1 초 후에 값 4 를 푸시 한 다음 완료되는 Observable입니다
import { Observable } from 'rxjs';
const observable = new Observable(subscriber => {
subscriber.next(1);
subscriber.next(2);
subscriber.next(3);
setTimeout(() => {
subscriber.next(4);
subscriber.complete();
}, 1000);
});
import { Observable } from 'rxjs';
const observable = new Observable(subscriber => {
subscriber.next(1);
subscriber.next(2);
subscriber.next(3);
setTimeout(() => {
subscriber.next(4);
subscriber.complete();
}, 1000);
});
console.log('just before subscribe');
observable.subscribe({
next(x) { console.log('got value ' + x); },
error(err) { console.error('something wrong occurred: ' + err); },
complete() { console.log('done'); }
});
console.log('just after subscribe');
Pull and Push 는 데이터 생산자 가 데이터 소비자 와 통신 하는 방법을 설명하는 서로 다른 두 가지 프로토콜입니다 .
풀이 란? 풀 시스템에서 소비자는 데이터 생산자로부터 데이터를 수신 할시기를 결정합니다. 생산자 자체는 언제 데이터가 소비자에게 전달 될지 모릅니다.
모든 JavaScript 함수는 풀 시스템입니다. 이 함수는 데이터 생산자이며 함수를 호출하는 코드는 호출에서 단일 반환 값을 "풀링"하여 소비합니다 .