Requisiti: I progetti Angular, cliccando un pulsante su una pagina, inviano una richiesta HTTP perché alcune interfacce richiedono molto tempo, devono mostrare l'effetto animazione di caricamento; quando la richiesta HTTP è completata, l'animazione di caricamento verrà chiusa.Quando la richiesta ha successo o si verifica un errore, devi disattivare l'animazione di caricamento。
Scrittura convenzionale
Come segue:
Cioè, quando la richiesta ha successo e si verifica un errore, devi chiamare l'animazione di chiusura del caricamento, c'è un modo più semplice? Simile a try-catch-finally in C#.
Usa l'operatore finalize
Quello che fa è tentativo-cattura-finalefinalmenteFunziona, dobbiamo scrivere il codice una sola volta, e la logica verrà eseguita indipendentemente dal successo o fallimento.
Il codice è il seguente:
Come funziona la finalizzazione? Fondamentalmente aggiunge un callback add (fn) al disassembly di un oggetto osservabile tramite iscrizione. Questo garantisce che venga chiamato in caso di errore, completamento e disiscrizione.
Si noti che l'operatore di finalize viene eseguito non appena il nostro Observable viene terminato. Questo è importante! Per Angular HTTP, questo funziona molto bene perché il servizio HTTP Angular restituisce "fatto" una volta completata la richiesta.
(Fine) |