Mai avuta la necessità di bloccare l’esecuzione di uno script javascript ad un certo punto dell’esecuzione dello stesso?
Se hai scritto il codice in maniera corretta, no! Questa è la risposta che mi aspetto.

Ahimè, nel mondo reale le cose non vanno sempre bene e può capitare di dover bloccare l’esecuzione del codice javascript ad un certo punto dello script per gestire situazioni particolari.
Che cosa lo può giustificare? Beh, il caso tipico è il redirect da javascript.
Come avviene anche con PHP in javascript, una volta impostato window.location per effettuare la redirezione su una specifica URL, l’esecuzione del codice procede fino al termine dello script. Non esistono istruzioni tipo die() o exit().

Come detto prima in realtà l’esigenza non dovrebbe sorgere se si è programmato con un minimo di testa: basta usare delle variabili di stato ed il gioco è fatto!
Capita però di lavorare su codice scritto da altri e non pensato per gestire questa problematica: la cosa migliore è sempre un sano refactoring ma può capitare comunque di aver l’esigenza di risolvere la questione immediatamente.

Cosa fare? Beh la soluzione è più semplice di quanto si possa pensare: che cosa blocca di colpo l’esecuzione di uno script javascript?
Un errore!
Giusto! e quindi lanciamo un errore!

throw new Error('questo non è un errore, serve per bloccare il codice Javascript.');

banale, un trucco sporco se volete… ma funziona!

Un altro trucco che potete usare è la funzione return.
Ma come? se abbiamo detto che non esistono funzioni che bloccano l’esecuzione??
Nel flusso normale del codice no, ma nelle funzioni si! return fa proprio questo!
Si ok, grazie al … mica capita sempre di essere all’interno di una funzione!
Esatto! ma chi ha detto che non possiamo far diventare tutto il codice una funzione… non una funzione qualunque, una funzione anonima :

(function(){
    if (condizione1)  {
        ..
        codice
        ..
    } else if (condizione2) {
        return;
    }
});

furbo, eh? 😉

Vediamo invece come evitare di dover ricorrere a questi sporchi trucchi.

Usate le callback (o meglio ancora le promises) e ricordate che la programmazione sul web è sempre asincrona : se vi trovate a scrivere parti di codice sincrono significa che qualcosa non va e che in futuro qualcosa potrebbe non andare!

Bloccare l’esecuzione di uno script javascript

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *