Come denominare le funzioni che continuano un processo dopo un passo asincrono

-1

Dì che hai un'applicazione web che stampa pagine in un documento. Supponiamo che dopo aver convalidato l'intervallo di pagine, l'applicazione esegua le seguenti operazioni:

  1. Se è attivata un'opzione di fatturazione, prima controlla con il server per confermare la stampa.

  2. Dopo aver confermato la stampa (o senza fare nulla se l'opzione di fatturazione non è attivata), stampa le pagine.

Per supportare l'attivazione e la disattivazione della fatturazione, il codice ha un aspetto simile al seguente:

function printPages (...) {
    if (billing) {
        confirmPrintWithServer(..., function () {
            printPagesInternal(...);
        });
    } else {
        printPagesInternal(...);
    }
}

Se la chiamata per verificare la stampa era sincrona, questo non sarebbe davvero un problema. Quindi sarebbe simile a questo:

function printPages (...) {
    if (billing) {
        if (!confirmPrintWithServer(...)) return;
    }
    // continue with rest of printPages
}

Quello che è andato in un "printPagesInternal" nel primo caso sarebbe semplicemente il resto di printPages nel caso sincrono.

C'è un modo migliore per nominare queste due cose che aggiungere "Interno" o qualcosa di simile alla fine di quello che il chiamante del codice non vede? Se avessimo più livelli di controllo, dovremmo fare "InternalInternal"? La situazione di "più livelli di controlli" non sta per accadere, quindi aggiungere "Interno" è in realtà la soluzione giusta?

    
posta AmadeusDrZaius 24.02.2016 - 00:27
fonte

1 risposta

-1

Dopo un po 'di riflessione, mi sono reso conto che puoi descrivere la funzione attraverso ciò che fa non .

In questo caso, significa che avresti printPages e printPagesWithoutBilling . Così diventa:

function printPages (...) {
    if (billing) {
        confirmPrintWithServer(..., function () {
            printPagesWithoutBilling(...);
        });
    } else {
        printPagesWithoutBilling(...);
    }
}

In questo modo, non confonderebbe il programmatore chiamandolo, a patto che sappia che printPages fa fa fatturazione. È un po 'come compareStrings e compareStringsIgnoringCase .

Un'altra opzione sarebbe fare printPagesAfterBilling . Questo potrebbe essere utile se hai una lunga funzione con molti passaggi asincroni, perché non devi usare più "senza X" nel nome della tua funzione.

    
risposta data 24.02.2016 - 01:07
fonte

Leggi altre domande sui tag