jQuery, differenziali e condizionali "se"

1

Come posso semplificare il seguente codice? Sospetto che possa essere semplificato utilizzando la classe $ .Deferred, ma non so come.

if (condition) {
    $.get('url').done(function () {
        done();
    });
} else {
    done();
}

Non voglio ripetere la funzione done () due volte.

    
posta Cequiel 27.04.2016 - 14:54
fonte

1 risposta

1

Il modo tipico per semplificare questo tipo di codice è creare una promessa risolta "vuota" che puoi usare al posto della promessa "reale" se non hai bisogno di ottenere () l'url.

Non uso molto jQuery, ma credo che sarebbe simile a questo:

var promise = condition ? $.get('url') : $.Deferred().resolve().promise();
promise.done(function () {
    done();
});

Oltre a non ripetere la chiamata di done() , questo ha anche il vantaggio di essere sempre asincrono. Il tuo codice attuale sembra a volte sincrono e talvolta asincrono, che non è una buona cosa .

    
risposta data 28.04.2016 - 01:10
fonte

Leggi altre domande sui tag