Skip to content

Instantly share code, notes, and snippets.

View ArtemRomanovsky's full-sized avatar

ArtemRomanovsky

View GitHub Profile
emitValue(observer) {
let i = 0;
const id = setInterval(() => {
observer.next(i++)
}, 1000)
return () => { clearInterval(id) }
}
createObservable(emitValueFn) {
return {
const observable = Rx.Observable.interval(1000).take(5);
const observerA = {...};
const observerB = {...};
const hybrid = {
observers: [],
subscribe: (obs) => {
this.observers.push(obs);
}
next: (v) => {
const observable = Rx.Observable.interval(1000).take(5);
const observerA = {...};
const observerB = {...};
const subject = new Rx.Subject();
observable.subscribe(subject);
subject.subscribe(observerA); // first execution
setTimeout(() => {
const connectableObservable = Rx.Observable
.interval(1000)
.take(5)
.multicast(new Rx.Subject());
const observerA = {...};
const observerB = {...};
connectableObservable.connect();
connectableObservable.subscribe(observerA); // first execution
const observable = Rx.Observable
.interval(1000)
.take(5)
.multicast(new Rx.Subject())
.refCount();
const observable = Rx.Observable
.interval(1000)
.take(3)
.publish()
.refCount()
const observerA = {
next: (x) => console.log('A next ' + x) ,
complete: () => console.log('A done')
};
const observable = Rx.Observable
.interval (1000)
.take (3)
.share ()
const observable = Rx.Observable
.interval(1000)
.take(3)
.share()
@Component({
template:
`<span>I am {{name}}</span>
`,
})
export class MyComponent {
name = 'Angular';
}
// simplified component factory
function View_MyComponent_0(l) {
return jit_viewDef1(0,
// view defenition nodes
[
jit_elementDef2(0, null, null, 1, "span", ...),
jit_textDef3(null, ["I am ", ...])
]
);
}
export interface ViewDefinition {
...
}