RxPY - últimas atualizações de versão
Neste tutorial, estamos usando RxPY versão 3 e python versão 3.7.3. O funcionamento do RxPY versão 3 difere um pouco da versão anterior, ou seja, o RxPY versão 1.
Neste capítulo, vamos discutir as diferenças entre as 2 versões e as mudanças que precisam ser feitas no caso de você estar atualizando as versões Python e RxPY.
Observável em RxPY
Na versão 1 do RxPy, Observable era uma classe separada -
from rx import Observable
Para usar o Observable, você deve usá-lo da seguinte maneira -
Observable.of(1,2,3,4,5,6,7,8,9,10)
Na versão 3 do RxPy, o Observable faz parte diretamente do pacote rx.
Example
import rx
rx.of(1,2,3,4,5,6,7,8,9,10)
Operadores em RxPy
Na versão 1, o operador era métodos na classe Observable. Por exemplo, para fazer uso de operadores, temos que importar Observable conforme mostrado abaixo -
from rx import Observable
Os operadores são usados como Observable.operator, por exemplo, conforme mostrado abaixo -
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)))
No caso do RxPY versão 3, os operadores funcionam, são importados e usados da seguinte forma -
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)))
Operadores de encadeamento usando o método Pipe ()
Na versão 1 do RxPy, caso você tivesse que usar vários operadores em um observável, isso tinha que ser feito da seguinte maneira -
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)))
Mas, no caso do RxPY versão 3, você pode usar o método pipe () e vários operadores como mostrado abaixo -
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)))