i have a angular component, that uses 3 services. Each of those services has an observer, that i can subscribe to. The view of the component must be updated, if anything on the observed changes, that happens through websockets (feathers.js).
I want the doSomethingWithTheNewDataThatIsShownOnView()
to be called only once on ngInit and i think, i can do this with forkJoin:
private ngOnInit(): void {
Observable.forkJoin(
this.filesService.inputs$,
this.filesService.outputs$,
this.processesService.items$
).subscribe(
data => {
this.inputs = data[0];
this.outputs = data[1];
this.processes = data[2];
this.doSomethingWithTheNewDataThatIsShownOnView();
this.ref.markForCheck();
},
err => console.error(err)
);
this.filesService.find();
this.processesService.find();
}
That works as expected, but if there is new data on inputs$ Observable or outputs$ Observable, the subscribe is not beeing called again. It is only called, if all three Observables have new data. Is there something like "wait for a interval of 100ms if all three observables have new data, if not use only the new data of all observables, that have new data until now?"
I hope you understand, what i want to do :D
Greets
Chris