sql >> Database >  >> RDS >> Mysql

Retourfunctie Javascript

Ja, dat is zo, je hoeft alleen maar de manier waarop je over code denkt te veranderen. In plaats van email_already_exists_in_mysql . te schrijven je zou in plaats daarvan een functie moeten schrijven met de naam if_email_already_exists_in_mysql :

/* Executes callback if email
 * already exists in mysql:
 */
function if_email_already_exists_in_mysql (email,callback) {
    connection.query(
        'SELECT COUNT(*) AS nb FROM user WHERE emailUser = ' +
        connection.escape(email),

        function(err, rows, fields) {
            if(rows[0].nb != 0) {
                callback();
            }
        }
    )
}

In plaats van dit te schrijven:

//If the email hasn't a good format
if(email_not_good_format()) {
    //I do something
}
else if(email_already_exists_in_mysql(email)) {
    //I do something
}

je schrijft het in plaats daarvan als volgt:

//If the email hasn't a good format
if(email_not_good_format()) {
    //I do something
}
else {if_email_already_exists_in_mysql(email),function(){
    //I do something
})}

Nu vraag je je misschien af, wat als er daarna nog iemand anders is? Welnu, je moet de if_email_already_exists_in_mysql aanpassen functie om zich te gedragen als en if...else in plaats van alleen en if :

function if_email_already_exists_in_mysql (email,callback,else_callback) {
    connection.query(
        'SELECT COUNT(*) AS nb FROM user WHERE emailUser = ' +
        connection.escape(email),

        function(err, rows, fields) {
            if(rows[0].nb != 0) {
                callback();
            }
            else if(else_callback) {
                else_callback();
            }
        }
    )
}

zodat je het zo kunt noemen:

//If the email hasn't a good format
if(email_not_good_format()) {
    //I do something
}
else {
    if_email_already_exists_in_mysql(email),function(){
        //I do something
    },
    // else
    function(){
        //I do something else
    }
)}

U kunt asynchrone code schrijven om vrijwel alles te doen wat normale code alleen kan doen in plaats van een waarde terug te geven die u in een callback doorgeeft. Onthoud:

retour in synchrone code ==doorgeven in callbacks in asynchrone code.

De codestructuur moet daarom anders zijn, maar zoals ik hierboven heb aangetoond, kan de logica die u wilt implementeren precies hetzelfde zijn.




  1. Hoe gebruikersrechten in MySQL Workbench te controleren met behulp van de GUI

  2. PostgreSQL schalen met behulp van verbindingspoolers en load balancers

  3. JSON_STORAGE_FREE() – Ontdek hoeveel opslagruimte vrijkwam na een update van een JSON-document in MySQL

  4. Gebruik LIMIT om resultaten te pagineren in MySQL-query