bonjour,

J'ai vraiment un problème pour retourner le résultat de ce bloc d'appels asynchrones :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
// définition de la fonction
function checkIfUIDExit(check_uid) {
 
	// On vérifie dans la BDD mongoDB si l'UID de l'user existe
	MongoClient.connect('mongodb://localhost:29111/bdd', function(err, db) {
	  	db.collection('user').find({id : check_id}).count( (err, result) => {
		  	if (err) {
		      throw err;
		    }
		    console.log("result", result); // renvoie le nombre d'user portant l'id
                    return result;
	  	});	
	});
}

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
// Appel de la fonction
console.log(checkIfUIDExit("mon_id"));
Je comprend pourquoi ce résultat me renvoie 'undefined', car la fonction est en traitement lors de l'affichage console.log.

J'ai également lu certaines ressources comme celle ci, tester avec async ou await, ou appeler tel que :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
checkIfUIDExit("mon_uid").then(result => {
  console.log(result);  
});
mais sans résultat ....

J'aurai pu appliquer avec "async" ce que j'ai lu mais le fait que ce soit imbriqué çà n'est plus la même chose.


Auriez vous une solution svp ?

bonne journée