Skip to content

Instantly share code, notes, and snippets.

@cartant
Last active July 21, 2019 00:18
Show Gist options
  • Save cartant/718a087c8a415ac9c285d8f36ea448d7 to your computer and use it in GitHub Desktop.
Save cartant/718a087c8a415ac9c285d8f36ea448d7 to your computer and use it in GitHub Desktop.
import { Observable } from "rxjs/Observable";
import "rxjs/add/observable/concat";
import "rxjs/add/observable/defer";
import "rxjs/add/observable/of";
import "rxjs/add/operator/delay";
import "rxjs/add/operator/publish";
function random() {
return Math.floor(Math.random() * 100);
}
const source = Observable.concat(
Observable.defer(() => Observable.of(random())),
Observable.defer(() => Observable.of(random())).delay(1)
);
function observer(name: string) {
return {
next: (value: number) => console.log(`observer ${name}: ${value}`),
complete: () => console.log(`observer ${name}: complete`)
};
}
const p = source.publish();
p.subscribe(observer("a"));
p.connect();
p.subscribe(observer("b"));
setTimeout(() => p.subscribe(observer("c")), 10);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment