RxPY - Création d'observables

créer

Cette méthode est utilisée pour créer un observable. Il aura la méthode d'observateur, c'est-à-dire

  • on_next() - Cette fonction est appelée lorsque l'Observable émet un élément.

  • on_completed() - Cette fonction est appelée lorsque l'observable est terminé.

  • on_error() - Cette fonction est appelée, lorsqu'une erreur se produit sur l'Observable.

Voici un exemple de travail -

testrx.py

from rx import create
def test_observable(observer, scheduler):
   observer.on_next("Hello")
   observer.on_error("Error occured")
   observer.on_completed()
source = create(test_observable)
source.subscribe(
   on_next = lambda i: print("Got - {0}".format(i)),
   on_error = lambda e: print("Error : {0}".format(e)),
   on_completed = lambda: print("Job Done!"),
)

Voici la output de l'observable créé -

E:\pyrx>python testrx.py
Got - Hello
Job Done!

vide

Cette observable ne sortira rien et émettra directement l'état complet.

Syntaxe

empty()

Valeur de retour

Il renverra une observable sans éléments.

Exemple

from rx import empty
test = empty()
test.subscribe(
   lambda x: print("The value is {0}".format(x)),
   on_error = lambda e: print("Error : {0}".format(e)),
   on_completed = lambda: print("Job Done!")
)

Production

E:\pyrx>python testrx.py
Job Done!

jamais

Cette méthode crée un observable qui n'atteindra jamais l'état complet.

Syntaxe

never()

Valeur de retour

Il renverra une observable qui ne se terminera jamais.

Exemple

from rx import never
test = never()
test.subscribe(
   lambda x: print("The value is {0}".format(x)),
   on_error = lambda e: print("Error : {0}".format(e)),
   on_completed = lambda: print("Job Done!")
)

Production

It does not show any output.

jeter

Cette méthode créera un observable qui générera une erreur.

Syntaxe

throw(exception)

Paramètres

exception: un objet qui a des détails d'erreur.

Valeur de retour

Un observable est renvoyé avec les détails de l'erreur.

Exemple

from rx import throw
test = throw(Exception('There is an Error!'))
test.subscribe(
   lambda x: print("The value is {0}".format(x)),
   on_error = lambda e: print("Error : {0}".format(e)),
   on_completed = lambda: print("Job Done!")
)

Production

E:\pyrx>python testrx.py
Error: There is an Error!

de_

Cette méthode convertira le tableau ou l'objet donné en observable.

Syntaxe

from_(iterator)

Paramètres

itérateur: il s'agit d'un objet ou d'un tableau.

Valeur de retour

Cela renverra une observable pour l'itérateur donné.

Exemple

from rx import from_
test = from_([1,2,3,4,5,6,7,8,9,10])
test.subscribe(
   lambda x: print("The value is {0}".format(x)),
   on_error = lambda e: print("Error : {0}".format(e)),
   on_completed = lambda: print("Job Done!")
)

Production

E:\pyrx>python testrx.py
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
Job Done!

intervalle

Cette méthode donnera une série de valeurs produites après un timeout.

Syntaxe

interval(period)

Paramètres

période: pour démarrer la séquence d'entiers.

Valeur de retour

Il renvoie une observable avec toutes les valeurs dans un ordre séquentiel.

Exemple

import rx
from rx import operators as ops
rx.interval(1).pipe(
   ops.map(lambda i: i * i)
).subscribe(lambda x: print("The value is {0}".format(x)))
input("Press any key to exit\n")

Production

E:\pyrx>python testrx.py
Press any key to exit
The value is 0
The value is 1
The value is 4
The value is 9
The value is 16
The value is 25
The value is 36
The value is 49
The value is 64
The value is 81
The value is 100
The value is 121
The value is 144
The value is 169
The value is 196
The value is 225
The value is 256
The value is 289
The value is 324
The value is 361
The value is 400

juste

Cette méthode convertira une valeur donnée en observable.

Syntaxe

just(value)

Paramètres

valeur: à convertir en observable.

Valeur de retour

Il renverra une observable avec les valeurs données.

Exemple

from rx import just
test = just([15, 25,50, 55])
test.subscribe(
   lambda x: print("The value is {0}".format(x)),
   on_error = lambda e: print("Error : {0}".format(e)),
   on_completed = lambda: print("Job Done!")
)

Production

E:\pyrx>python testrx.py
The value is [15, 25, 50, 55]
Job Done!

intervalle

Cette méthode donnera une plage d'entiers en fonction de l'entrée donnée.

Syntaxe

range(start, stop=None)

Paramètres

start: la première valeur à partir de laquelle la plage commencera.

stop: facultatif, dernière valeur de la plage à arrêter.

Valeur de retour

Cela renverra une observable avec une valeur entière basée sur l'entrée donnée.

Exemple

from rx import range
test = range(0,10)
test.subscribe(
   lambda x: print("The value is {0}".format(x)),
   on_error = lambda e: print("Error : {0}".format(e)),
   on_completed = lambda: print("Job Done!")
)

Production

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
Job Done!

repeat_value

Cette méthode créera une observable qui répétera la valeur donnée selon le nombre donné.

Syntaxe

repeat_value(value=None, repeat_count=None)

Paramètres

valeur: facultatif. La valeur à répéter.

repeat_count: facultatif. Le nombre de fois que la valeur donnée doit être répétée.

Valeur de retour

Il renverra une observable qui répétera la valeur donnée selon le compte est donné.

Exemple

from rx import repeat_value
test = repeat_value(44,10)
test.subscribe(
   lambda x: print("The value is {0}".format(x)),
   on_error = lambda e: print("Error : {0}".format(e)),
   on_completed = lambda: print("Job Done!")
)

Production

E:\pyrx>python testrx.py
The value is 44
The value is 44
The value is 44
The value is 44
The value is 44
The value is 44
The value is 44
The value is 44
The value is 44
The value is 44
Job Done!

début

Cette méthode prend une fonction en tant qu'entrée et renvoie une observable qui renverra la valeur de la fonction d'entrée.

Syntaxe

start(func)

Paramètres

func: une fonction qui sera appelée.

Valeur de retour

Il retourne une observable qui aura une valeur de retour de la fonction d'entrée.

Exemple

from rx import start
test = start(lambda : "Hello World")
test.subscribe(
   lambda x: print("The value is {0}".format(x)),
   on_error = lambda e: print("Error : {0}".format(e)),
   on_completed = lambda: print("Job Done!")
)

Production

E:\pyrx>python testrx.py
The value is Hello World
Job Done!

minuteur

Cette méthode émettra les valeurs dans l'ordre après l'expiration du délai.

Syntaxe

timer(duetime)

Paramètres

duetime: temps après lequel il doit émettre la première valeur.

Valeur de retour

Il renverra une observable avec des valeurs émises après duetime.

Exemple

import rx
from rx import operators as ops
rx.timer(5.0, 10).pipe(
   ops.map(lambda i: i * i)
).subscribe(lambda x: print("The value is {0}".format(x)))
input("Press any key to exit\n")

Production

E:\pyrx>python testrx.py
Press any key to exit
The value is 0
The value is 1
The value is 4
The value is 9
The value is 16
The value is 25
The value is 36
The value is 49
The value is 64