Angular è fortemente basato sulle Reactive Extension. Un tipico esempio di questa affermazione lo si trova nell'esecuzione delle chiamate HTTP. Una chiamata HTTP, sia che la si effettui con la classe Http che con la classe HttpClient, restituisce un oggetto di tipo Observable<T>. Le Reactive Extension permettono di realizzare in poco tempo funzionalità che con le Promise sono realizzabili solo atteverso la scrittura di molto codice.
Un tipico esempio sono le retry in una chiamata HTTP. Esistono molti casi in cui una chiamata HTTP può andare in errore (mancanza temporanea di connessione, server momentaneamente non disponibile, e così via). In questi casi possiamo decidere di effettuare nuovamente la chiamata un certo numero di volte prima di sollevare realmente un'eccezione. Utilizzando le Reactive Extensions tutto questo può essere fatto utilizzando il metodo retry.
import 'rxjs/add/operator/retry'; ... http.get<Person>('/api/person/1') .retry(3) .subscribe(//code);
In questo caso, la chiamata all'URL viene eseguita fino a un massimo di tre volte prima di andare in errore.
Questa stessa funzione è realizzabile anche utilizzando una Promise, ma dobbiamo scrivere a mano del codice che utilizzando le Reactive Extension abbiamo già a disposizione.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Paginare i risultati con QuickGrid in Blazor
Visualizzare le change sul plan di Terraform tramite le GitHub Actions
Recuperare App Service cancellati su Azure
Usare i servizi di Azure OpenAI e ChatGPT in ASP.NET Core con Semantic Kernel
Le novità di Angular: i miglioramenti alla CLI
Proteggere le risorse Azure con private link e private endpoints
Usare una container image come runner di GitHub Actions
Popolare una classe a partire dal testo, con Semantic Kernel e ASP.NET Core Web API
Esportare ed analizzare le issue di GitHub con la CLI e GraphQL
Gestire il colore CSS con HWB
Gestire la cancellazione di una richiesta in streaming da Blazor
Evitare il flickering dei componenti nel prerender di Blazor 8
I più letti di oggi
- Pubblicare immagini Docker su un registro privato di Azure
- Spegnere automaticamente ogni giorno una VM Azure
- Moonlight 2.0 in beta, con un po' di Silverlight 3.0 per Linux
- Impostare un promemoria per ruotare le chiavi di Azure Storage
- Routing HTTP con i proxy delle Azure Function
- Effettuare il download di un file via FTP con la libreria FluentFTP di .NET