Blog‎ > ‎Articoli‎ > ‎

ReactiveX - Operatori

pubblicato 7 dic 2016, 03:43 da Rudy Azzan   [ aggiornato in data 28 lug 2017, 13:55 ]

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


Comments