Middle
Cos'è un observable?
sobes.tech AI
Risposta dell'AI
Observable — è un flusso di dati che può emettere valori in modo asincrono. A differenza delle promesse, che restituiscono un singolo valore, un observable può emettere zero, uno o più valori nel tempo.
Caratteristiche principali:
- Pigro: Il flusso inizia a funzionare solo quando ci si iscrive.
- Annullabile: È possibile annullare l'iscrizione al flusso per fermarne l'esecuzione e liberare risorse.
- Molti valori: Può emettere più valori, mentre le promesse si risolvono una sola volta.
Componenti principali:
- Observable: Il flusso di dati stesso.
- Observer: Oggetto con i metodi
next,errorecomplete, chiamati dall'observable. - Subscription: Risultato dell'iscrizione a un observable, permette di annullare l'iscrizione.
- Operatori: Funzioni che trasformano o combinano observable (ad esempio,
map,filter,merge).
Esempio di utilizzo (RxJS):
import { of } from 'rxjs';
import { map } from 'rxjs/operators';
const source = of(1, 2, 3); // Creiamo un observable che emette 1, 2, 3
const example = source.pipe(map(x => x + 1)); // Applichiamo l'operatore map
const subscription = example.subscribe({ // Ci iscriviamo all'observable
next: value => console.log(`Next: ${value}`), // Gestione di ogni valore
error: err => console.error(`Error: ${err}`), // Gestione degli errori
complete: () => console.log('Complete!') // Chiamato al termine del flusso
});
// output:
// Next: 2
// Next: 3
// Next: 4
// Complete!
// subscription.unsubscribe(); // È possibile annullare l'iscrizione