Saltar al contenido

¿Cómo puedo completar Observable en RxJS?

Ya no busques más por todo internet porque llegaste al lugar indicado, poseemos la respuesta que buscas sin problema.

Solución:

En esta forma presente, no puedes. Su observable se deriva de una fuente que no se completa, por lo que no puede completarse. Lo que puede hacer es ampliar esta fuente con una condición de finalización. Esto funcionaría como:

var end$ = new Rx.Subject();
var observable = Rx.Observable
    .fromEvent(document.getElementById('emitter'), 'click')
    .takeUntil(end$);

cuando quieras terminar observabletú haces end$.onNext("anything you want here");. Eso es en el caso de que usted genere el evento final. Si esta es otra fuente que genera ese evento (presionar una tecla, etc.), entonces puede poner directamente un observable derivado de esa fuente como argumento de takeUntil.

Documentación:

  • http://reactivex.io/documentation/operators/takeuntil.html
  • https://github.com/Reactive-Extensions/RxJS/blob/master/doc/api/core/operators/takeuntil.md

Lo que funcionó para mí es usar el operador take(). Activará la devolución de llamada completa después de x número de eventos. Entonces, al pasar 1, se completará después del primer evento.

Mecanografiado:

private preloadImage(url: string): Observable 
    let img = new Image();
    let imageSource = Observable.fromEvent(img, "load");

    img.src = url;

    return imageSource.take(1);

Creo que lo que buscas es el dispose() método.

de: https://github.com/Reactive-Extensions/RxJS/blob/master/doc/gettingstarted/creating.md#cold-vs-hot-observables

Tenga en cuenta que el método de suscripción devuelve un Desechable, por lo que puede cancelar la suscripción a una secuencia y deshacerse de ella fácilmente. Cuando invoque el método dispose en la secuencia observable, el observador dejará de escuchar el observable en busca de datos. Normalmente, no necesita llamar explícitamente a dispose a menos que necesite darse de baja antes de tiempo o cuando la secuencia observable de origen tenga una vida útil más larga que el observador. Las suscripciones en Rx están diseñadas para escenarios de disparar y olvidar sin el uso de un finalizador. Tenga en cuenta que el comportamiento predeterminado de los operadores de Observable es deshacerse de la suscripción lo antes posible (es decir, cuando se publica un mensaje onCompleted o onError). Por ejemplo, el código suscribirá x a ambas secuencias a y b. Si a arroja un error, x se dará de baja inmediatamente de b.

Recuerda algo, que tienes concesión de glosar .

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *