RxPY - Dernières mises à jour de version

Dans ce tutoriel, nous utilisons RxPY version 3 et python version 3.7.3. Le fonctionnement de RxPY version 3 diffère un peu de la version précédente, c'est-à-dire RxPY version 1.

Dans ce chapitre, nous allons discuter des différences entre les 2 versions et des modifications qui doivent être apportées au cas où vous mettriez à jour les versions Python et RxPY.

Observable dans RxPY

Dans RxPy version 1, Observable était une classe distincte -

from rx import Observable

Pour utiliser l'Observable, vous devez l'utiliser comme suit -

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

Dans RxPy version 3, Observable fait directement partie du package rx.

Example

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

Opérateurs dans RxPy

Dans la version 1, l'opérateur était des méthodes de la classe Observable. Par exemple, pour utiliser les opérateurs, nous devons importer Observable comme indiqué ci-dessous -

from rx import Observable

Les opérateurs sont utilisés comme Observable.operator, par exemple, comme indiqué ci-dessous -

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)))

Dans le cas de la version 3 de RxPY, les opérateurs sont fonctionnels et sont importés et utilisés comme suit -

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)))

Chaînage d'opérateurs à l'aide de la méthode Pipe ()

Dans RxPy version 1, au cas où vous deviez utiliser plusieurs opérateurs sur une observable, il fallait le faire comme suit -

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)))

Mais, dans le cas de la version 3 de RxPY, vous pouvez utiliser la méthode pipe () et plusieurs opérateurs comme indiqué ci-dessous -

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)))