2016-11-16 1 views
0

Existe-t-il un moyen d'exécuter mysql query synchrone? quelque chose commenodejs mysql sans callback

getUser:function(user_id){ 
    return mysql_connection.query("select ... "); 
}, 

pour l'utiliser comme ceci

var user = getUser(id); 

Répondre

1

En général, la réponse est non, sauf si vous utilisez une liaison à libmysqlclient (ou similaire) qui expose ces interfaces synchrones.

Vous voulez éviter ces interfaces synchrones car elles vous empêcheront de faire quoi que ce soit autrement pendant l'exécution de la fonction synchrone. Par exemple, si vous avez un serveur en cours d'exécution, cela signifie que vous ne pouvez pas traiter d'autres clients. Ils doivent tous attendre au moins que votre fonction synchrone se termine.

Cependant, il existe une multitude de façons de gérer les tâches asynchrones, y compris les callbacks «manuels» (évidemment), les bibliothèques auxiliaires basées sur les rappels comme async, les promesses, les générateurs, async/await, etc. d'une API synchrone sans être réellement synchrone.