Aquí podría ser tu PUBLICIDAD


¿Cómo se sustituye a un abonado con un observador?

votos
0

Este tema en GitHub resume más o menos hacia arriba. I'am utilizando una timer()con una programación periódica de 1 segundo para realizar una determinada tarea. Me sincronizarlo con una Subscribersuscribir los intervalos. Cuando un determinado modelo se queda sin datos, que doy de baja y esperar a que los recién llegados. Cuando los datos se rellena de nuevo, trato de suscribirse de nuevo, pero no funciona. Resulta whena Subscriberha sido unsub'd, no puedo volver a usar. Por lo que debe sustituirlo por un Observer. Un novato aquí, no tengo idea de cómo hacer eso. intentó mirar ejemplos, que sólo me confunden más.

¿Cómo reemplazo el siguiente código para funcionar con un Observerlugar?

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 => {}, () => {});

Suscribo y de este modo:

    ...
    // 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();
    ...
Publicado el 02/09/2018 a las 05:37
fuente por usuario Clinkz
En otros idiomas...        العربية       


Aquí podría ser tu PUBLICIDAD