RxPY - Operadores condicionales y booleanos
todas
Este operador comprobará si todos los valores de la fuente observable satisfacen la condición dada.
Sintaxis
all(predicate)
Parámetros
predicado: booleano. Esta función se aplicará a todos los valores, desde la fuente observable y devolverá verdadero o falso según la condición dada.
Valor devuelto
El valor de retorno es un observable, que tendrá el valor booleano verdadero o falso, según la condición aplicada a todos los valores de la fuente observable.
Ejemplo 1
from rx import of, operators as op
test = of(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
sub1 = test.pipe(
op.all(lambda a: a<10)
)
sub1.subscribe(lambda x: print("The result is {0}".format(x)))
Salida
E:\pyrx>python testrx.py
The result is False
Ejemplo 2
from rx import of, operators as op
test = of(1, 2, 3, 4, 5, 6, 7, 8, 9)
sub1 = test.pipe(
op.all(lambda a: a<10)
)
sub1.subscribe(lambda x: print("The result is {0}".format(x)))
Salida
E:\pyrx>python testrx.py
The result is True
contiene
Este operador devolverá un observable con el valor verdadero o falso si el valor dado está presente son los valores de la fuente observable.
Sintaxis
contains(value, comparer=None)
Parámetros
valor: el valor que se comprobará si está presente en la fuente observable
comparador: opcional. Esta es una función de comparación que se aplicará a los valores presentes en la fuente observable para la comparación.
Example
from rx import of, operators as op
test = of(17, 25, 34, 56, 78)
sub1 = test.pipe(
op.contains(34)
)
sub1.subscribe(lambda x: print("The value is {0}".format(x)))
Salida
E:\pyrx>python testrx.py
The value is True
Ejemplo 2: uso de comparador
from rx import of, operators as op
test = of(17, 25, 34, 56, 78)
sub1 = test.pipe(
op.contains(34, lambda x, y: x == y)
)
sub1.subscribe(lambda x: print("The valus is {0}".format(x)))
Salida
E:\pyrx>python testrx.py
The value is True
default_if_empty
Este operador devolverá un valor predeterminado si la fuente observable está vacía.
Sintaxis
default_if_empty(default_value=None)
Parámetros
valor_predeterminado: opcional. Dará la salida, ya que None es nada se pasa como valor_predeterminado, de lo contrario, dará cualquier valor que se pase.
Valor devuelto
Devolverá un observable con un valor predeterminado si el observable de origen está vacío.
Ejemplo 1
from rx import of, operators as op
test = of()
sub1 = test.pipe(
op.default_if_empty()
)
sub1.subscribe(lambda x: print("The value is {0}".format(x)))
Salida
E:\pyrx>python testrx.py
The value is None
Ejemplo 2: valor_predeterminado pasado
from rx import of, operators as op
test = of()
sub1 = test.pipe(
op.default_if_empty("Empty!")
)
sub1.subscribe(lambda x: print("The value is {0}".format(x)))
Salida
E:\pyrx>python testrx.py
The value is Empty!
sequence_equal
Este operador comparará dos secuencias de observables o una matriz de valores y devolverá un observable con el valor verdadero o falso.
Sintaxis
sequence_equal(second_seq, comparer=None)
Parámetros
second_seq: observable o matriz a comparar con el primer observable.
comparador: opcional. Función de comparación que se aplicará para comparar valores en ambas secuencias.
Ejemplo
from rx import of, operators as op
test = of(1,2,3)
test1 = of(1,2,3)
sub1 = test.pipe(
op.sequence_equal(test1)
)
sub1.subscribe(lambda x: print("The value is {0}".format(x)))
Salida
E:\pyrx>python testrx.py
The value is True
Ejemplo: usar una función de comparación
from rx import of, operators as op
test = of(1,2,3)
test1 = of(1,2,3)
sub1 = test.pipe(
op.sequence_equal(test1, lambda x, y : x == y)
)
sub1.subscribe(lambda x: print("The value is {0}".format(x)))
Salida
E:\pyrx>python testrx.py
The value is True
saltar_hasta
Este operador descartará valores de la fuente observable hasta que el segundo observable emita un valor.
Sintaxis
skip_until(observable)
Parámetros
observable: el segundo observable que cuando emite un valor disparará la fuente observable.
Valor devuelto
Devolverá un observable que tendrá valores desde la fuente observable hasta que el segundo observable emita un valor.
Ejemplo
from rx import interval,range, operators as op
from datetime import date
test = interval(0)
test1 = range(10)
sub1 = test1.pipe(
op.skip_until(test)
)
sub1.subscribe(lambda x: print("The value is {0}".format(x)))
Salida
E:\pyrx>python testrx.py
The value is 0
The value is 1
The value is 2
The value is 3
The value is 4
The value is 5
The value is 6
The value is 7
The value is 8
The value is 9
saltar_mientras
Este operador devolverá un observable con valores de la fuente observable que satisfaga la condición pasada.
Sintaxis
skip_while(predicate_func)
Parámetros
predicate_func: esta función se aplicará a todos los valores de la fuente observable y devolverá los valores que satisfagan la condición.
Valor devuelto
Devolverá un observable con valores de la fuente observable que satisfaga la condición pasada.
Ejemplo
from rx import of, operators as op
from datetime import date
test = of(1,2,3,4,5,6,7,8,9,10)
sub1 = test.pipe(
op.skip_while(lambda x : x < 5)
)
sub1.subscribe(lambda x: print("The value is {0}".format(x)))
Salida
E:\pyrx>python testrx.py
The value is 5
The value is 6
The value is 7
The value is 8
The value is 9
The value is 10
tomar_hasta
Este operador descartará los valores de la fuente observable después de que el segundo observable emita un valor o finalice.
Sintaxis
take_until(observable)
Parámetros
observable: el segundo observable que, cuando emite un valor, terminará la fuente observable.
Valor devuelto
Devolverá un observable, que tendrá valores de la fuente solo observables, cuando el segundo observable utilizado emita un valor.
Ejemplo
from rx import timer,range, operators as op
from datetime import date
test = timer(0.01)
test1 = range(500)
sub1 = test1.pipe(
op.take_until(test)
)
sub1.subscribe(lambda x: print("The value is {0}".format(x)))
En este ejemplo, obtendrá los valores emitidos desde range. Pero, una vez que el temporizador esté listo, evitará que la fuente observable emita más.
Salida
E:\pyrx>python testrx.py
The value is 0
The value is 1
The value is 2
The value is 3
The value is 4
The value is 5
The value is 6
The value is 7
The value is 8
The value is 9
The value is 10
The value is 11
The value is 12
The value is 13
The value is 14
The value is 15
The value is 16
The value is 17
The value is 18
The value is 19
The value is 20
The value is 21
The value is 22
The value is 23
The value is 24
The value is 25
The value is 26
tomar_mientras
Este operador descartará los valores de la fuente observables cuando la condición falla.
Sintaxis
take_while(predicate_func)
Parámetros
predicate_func: esta función evaluará cada valor de la fuente observable.
Valor devuelto
Devolverá un observable con valores hasta que la función de predicado satisfaga.
Ejemplo
from rx import of, operators as op
from datetime import date
test = of(1,2,3,4,5,6,7,8,9,10)
sub1 = test.pipe(
op.take_while(lambda a : a < 5)
)
sub1.subscribe(lambda x: print("The value is {0}".format(x)))
Salida
E:\pyrx>python testrx.py
The value is 1
The value is 2
The value is 3
The value is 4