ReactiveX - Operatori
Post date: Dec 7, 2016 11:43:45 AM
Glossario
Osservabile
Definisce l'azione da osservare
Osservatore
Colui che può abbonare all'osservabile
Sottoscrittore
Un abbonato che esegue l'azione
Creatori di osservabili
Operatori che creano nuovi osservabili
Create
Crea un osservabile da zero mediante una funzione, che esegue appena viene sottoscritto.
Defer
Non crea un osservabile fino a quando l'osservatore non si sottoscrive. Successivamente, creare un nuovo osservabile per ogni osservatore
Empty
Ritorna un osservabile che non manda niente ad un osservatore, ma si completa subito
Never
Ritorna un osservabile che non manda niente ad un osservatore e non termina mai
Throw
Ritorna un osservabile che non manda niente ad un osservatore ma va subito in errore
From
Converte vari oggetti e tipi di dato in osservabili
Interval
Ritorna un osservabile che emette una sequenza di interi ad un intervallo di tempo specificato
Just
Converte uno o più oggetti in un osservabile che emette tali oggetti
Range
Crea un osservabile che emette un range di sequenze di interi
Repeat
Crea un osservabile che emette un particolare elemento o una sequenza di elementi ripetutamente
Start
Crea un osservabile che emette il valore di ritorno di una funzione
Timer
Crea un osservabile che emette un solo elemento dopo un intervallo di tempo prestabilito
Trasformatori di osservabili
Operatori che trasformano gli elementi che sono emessi da un osservabile
Buffer
Raccoglie periodicamente elementi da un osservabile e li emette in gruppi invece che uno alla volta
FlatMap
Trasforma gli elementi emessi da un osservabile in osservatori. Successivamente compatta le emissioni in un singolo osservabile
GroupBy
Divide l'osservabile in insiemi di osservabili, ogni uno dei quali emette un gruppo di elementi differenti dall'osservabile originale organizzati per chiavi
Map
Trasforma gli elementi emessi da un osservabile applicando una funzione per ciascuno di essi
Scan
Applica una funzione ad ogni elemento emesso da un osservabile in maniera sequenziale. Il valore emesso è usato come input per un un nuovo osservabile ed il valore successivo della sequenza, fino a completarla tutta
(si può usare ad esempio per creare un calcolatore di totale di una fattura che lavora in real-time, come può fare anche una formula Excel per capirsi)
Window
Suddivide periodicamente, gli elementi da un osservabile in un gruppo di elementi osservabili ed emette questi gruppi, invece di emettere gli elementi uno alla volta
Applicazione fillti ad osservabili
Operatori che partendo da una sorgente osservabile, emettono elementi in maniera selettiva
Debounce
Emette solamente l'elemento di un osservabile se è passato un particolare lasso di tempo durante il quale non sono stati emessi altri elementi.
(ad esempio in uno stream di dati video a flusso molto veloce, si possono mostrare solamente le immagini che un umano può vedere a 30 fps)
Distinct
Blocca gli elementi duplicati che sono stati emessi da un osservabile
ElementAt
Emette solamente l'elemento n dell'osservabile
Filter
Emette solo gli elementi di un osservabile, che passano un determinato test
First
Emette da un osservabile, solo il primo elemento o il primo che passa un determinato test
IgnoreElements
Non emette nessun elemento da un osservabile, ma può mandare un segnale d'errore o di completamento
Last
Emette solamente l'ultimo elemento di un osservabile
Sample
Emette il più recente elemento emesso da un osservabile, con un intervallo di tempo periodico
Skip
Salta i primi n elementi emessi da un osservabile
SkipLast
Salta gli ultimi n elementi emessi da un osservabile
Take
Emette solo i primi n elementi emessi da un osservabile
TakeLast
Emette solo gli ultimi n elementi emessi da un osservabile
Combinazioni tra osservabili
Operatori che lavorano creand un singolo osservabile, da più sorgenti osservabili diverse
And/Then/When
Combina insiemi di elementi emessi da due o più osservabili, tramite l'applicazione di un modello e un piano d'intermediazione
CombineLatest
Quando un elemento è emesso da due osservabili, combina l'ultimo elemento emesso da ciascun osservabile con una funzione che emette elementi bastati sul risultato di tale funzione.
(In pratica fa un join di più fonti diverse)
Join
Combina gli elementi emessi da due osservabili, ogni volta che un elemento è emesso da un osservabile durante un intervallo di tempo prestabilito
Merge
Combina osservabili multipli in uno solo, fondendo le loro emissioni
StartWith
Fa emettere ad un osservabile una specifica sequenza di elementi, prima che inizi ad emettere quelli della sorgente osservabile
Switch
Converte un osservabile che emette osservabili in un singolo osservabile che emette elementi dal più recente emesso
Zip
Combina emissioni di osservabili multipli con una specifica funzione che emette un singolo elemento per ogni combinazione, basta sul risultato di questa funzione
Operatori di gestione errore
Operatori che aiutano a recuperare il flusso d'esecuzione, dalle notifiche d'errore di un osservabile
Catch
Recupera da una notifica d'errore: onError, continuando la sequenza senza errori
Retry
Se una sorgente osservabile manda una notifica d'errore: onError, si re-iscrive ad essa e riprova, sperando che venga completata senza errori
Operatori utili per l'osservabile
Una serie di strumenti utili per lavorare con gli osservabili
Delay
Sposta l'emissione di un osservabile in avanti, di un determinato intervallo di tempo
Do
Registra un azione, che verrà chiamata quando determinati eventi si svolgeranno su un osservabile. Le azioni verranno eseguite indipendentemente dal normale insieme di emissione di elementi associati all'osservabile
Materialize/Dematerialize
Rappresenta entrambi gli elementi emessi e le notifiche mandate agli elementi emessi, oppure inverte il processo
ObserveOn
Specifica lo scheduler con il quale un osservabile osserverà se stesso
Serialize
Forza l'osservabile ad eseguire chiamate serializzate, per contesti multithreading
Subscribe
Opera sulle emissioni e notifiche di un osservabile
SubscribeOn
Specifica lo scheduler che un osservabile deve usare quando esso viene sottoscritto
TimeInterval
Converte un osservabile che emette elementi in uno che emette indicazioni della quantità di tempo trascorso tra tali emissioni
Timeout
Emette gli elementi della sorgente osservabile, ma da una notifica d'errore se è passato un determinato periodo di tempo senza che sia stato emesso almeno un elemento
Timestamp
Allega un timestamp ad ogni elemento emesso da un osservabile
Using
Crea una risorsa che esiste assieme all'osservabile e viene distrutta quando esso viene distrutto
Conditional and Boolean Operators
Operators that evaluate one or more Observables or items emitted by Observables
All
Determine whether all items emitted by an Observable meet some criteria
Amb
Date due o più sorgenti osservabili, emette tutti gli elementi del solo osservabile che emette un elemento per primo.
(si può usare ad esempio per lanciare più eventi di calcolo con parametri diversi in parallelo e concentrarsi su quello che da per primo un risultato)
Contains
Determine whether an Observable emits a particular item or not
DefaultIfEmpty
Emit items from the source Observable, or a default item if the source Observable emits nothing
SequenceEqual
Determine whether two Observables emit the same sequence of items
SkipUntil
Discard items emitted by an Observable until a second Observable emits an item
SkipWhile
Discard items emitted by an Observable until a specified condition becomes false
TakeUntil
Discard items emitted by an Observable after a second Observable emits an item or terminates
TakeWhile
Discard items emitted by an Observable after a specified condition becomes false
Mathematical and Aggregate Operators
Operators that operate on the entire sequence of items emitted by an Observable
Average
Calculates the average of numbers emitted by an Observable and emits this average
Concat
Emit the emissions from two or more Observables without interleaving them
Count
Count the number of items emitted by the source Observable and emit only this value
Max
Determine, and emit, the maximum-valued item emitted by an Observable
Min
Determine, and emit, the minimum-valued item emitted by an Observable
Reduce
Apply a function to each item emitted by an Observable, sequentially, and emit the final value
Sum
Calculate the sum of numbers emitted by an Observable and emit this sum
Backpressure Operators
backpressure operators
Strategies for coping with Observables that produce items more rapidly than their observers consume them
Connectable Observable Operators
Specialty Observables that have more precisely-controlled subscription dynamics
Connect
Instruct a connectable Observable to begin emitting items to its subscribers
Publish
Convert an ordinary Observable into a connectable Observable
RefCount
Make a Connectable Observable behave like an ordinary Observable
Replay
Ensure that all observers see the same sequence of emitted items, even if they subscribe after the Observable has begun emitting items
Operators to Convert Observables
To
Convert an Observable into another object or data structure