RxPY - Neueste Release-Updates

In diesem Tutorial verwenden wir RxPY Version 3 und Python Version 3.7.3. Die Funktionsweise von RxPY Version 3 unterscheidet sich geringfügig von der früheren Version, dh RxPY Version 1.

In diesem Kapitel werden die Unterschiede zwischen den beiden Versionen und die Änderungen erläutert, die vorgenommen werden müssen, wenn Sie Python- und RxPY-Versionen aktualisieren.

Beobachtbar in RxPY

In RxPy Version 1 war Observable eine separate Klasse -

from rx import Observable

Um das Observable zu verwenden, müssen Sie es wie folgt verwenden:

Observable.of(1,2,3,4,5,6,7,8,9,10)

In RxPy Version 3 ist Observable direkt Teil des RX-Pakets.

Example

import rx
rx.of(1,2,3,4,5,6,7,8,9,10)

Operatoren in RxPy

In Version 1 war der Operator Methoden in der Observable-Klasse. Um beispielsweise Operatoren zu verwenden, müssen wir Observable wie unten gezeigt importieren -

from rx import Observable

Die Operatoren werden beispielsweise als Observable.operator verwendet, wie unten gezeigt -

Observable.of(1,2,3,4,5,6,7,8,9,10)\
   .filter(lambda i: i %2 == 0) \
   .sum() \
   .subscribe(lambda x: print("Value is {0}".format(x)))

Im Fall von RxPY Version 3 sind Operatoren funktionsfähig und werden wie folgt importiert und verwendet:

import rx
from rx import operators as ops
rx.of(1,2,3,4,5,6,7,8,9,10).pipe(
   ops.filter(lambda i: i %2 == 0),
   ops.sum()
).subscribe(lambda x: print("Value is {0}".format(x)))

Verketten von Operatoren mit der Pipe () -Methode

In RxPy Version 1 musste für den Fall, dass Sie mehrere Operatoren für ein Observable verwenden mussten, wie folgt vorgegangen werden:

Example

from rx import Observable
Observable.of(1,2,3,4,5,6,7,8,9,10)\
   .filter(lambda i: i %2 == 0) \
   .sum() \
   .subscribe(lambda x: print("Value is {0}".format(x)))

Im Fall von RxPY Version 3 können Sie jedoch die pipe () -Methode und mehrere Operatoren verwenden, wie unten gezeigt -

Example

import rx
from rx import operators as ops
rx.of(1,2,3,4,5,6,7,8,9,10).pipe(
   ops.filter(lambda i: i %2 == 0),
   ops.sum()
).subscribe(lambda x: print("Value is {0}".format(x)))