Dette problemet på GitHub ganske mye summerer opp. I'am ved hjelp av en timer()
med en tilbakevendende plan av en annen for å utføre en bestemt oppgave. Jeg kobler den opp med en Subscriber
å abonnere intervallene. Når en bestemt modell går tom for data, jeg melde det og vente på nye ankomster. Når de data er befolket igjen, prøver jeg å abonnere på nytt, men det fungerer ikke. Det viser seg whena Subscriber
har blitt unsub'd, kan jeg ikke bruke det igjen. Så jeg må erstatte den med en Observer
. En nybegynner her, har jeg ingen anelse om hvordan du gjør det. prøvde å se på eksempler, de bare forvirret meg videre.
Hvordan bytter jeg følgende kode til å fungere med en Observer
i stedet?
private timer = timer(1000, 1000);
// A timer subscription that keeps sending new images to the observer
timerSubscription = new Subscriber(() => {
// Check if there is an element in the list
if (this.head != null) {
// If the current node at head is a folder, unsubscribe the listener
if (this.head.data['id'].startsWith('folder')) {
this.timerSubscription.unsubscribe();
}
// Pop a node from the list and pass on to observer
this.observer.next(this.this$PiFrame.pop());
} else {
// If no nodes are left, unsubscribe from the timer
this.timerSubscription.unsubscribe();
console.log('No items left on the queue. Deactivating timer subscription.');
}
}, e => {}, () => {});
og jeg abonnere slik:
...
// Setup a timer to pop every 1000 ms
this.timer.subscribe(this.this$PiFrame.timerSubscription);
...
// If no nodes are left, unsubscribe from the timer
this.timerSubscription.unsubscribe();
...