Maison >interface Web >js tutoriel >Comment gérer l'achèvement des rappels asynchrones dans Node.js ?
Dans Node.js, lorsqu'il s'agit de rappels asynchrones, il est crucial de comprendre la nature fondamentalement non bloquante de la plateforme . Cet article aborde un défi courant : comment faire en sorte qu'une fonction attende la fin d'un rappel.
Considérez la fonction simplifiée suivante :
<code class="js">function(query) { myApi.exec('SomeCommand', function(response) { return response; }); }</code>
L'objectif est d'appeler myApi.exec et renvoie la réponse reçue dans le rappel. Cependant, ce code revient immédiatement, le rendant inefficace.
L'architecture basée sur les événements de Node.js dicte que la « bonne » façon de gérer les rappels asynchrones est ne pas attendre. Au lieu de cela, les fonctions doivent accepter un paramètre de rappel qui sera invoqué à la fin de l'opération. L'appelant ne doit pas s'attendre à une valeur de « retour » traditionnelle mais plutôt fournir un rappel pour traiter le résultat.
<code class="js">function(query, callback) { myApi.exec('SomeCommand', function(response) { // additional processing... callback(response); // This "returns" the value to the caller }); }</code>
Utilisation :
<code class="js">myFunction(query, function(returnValue) { // Use the return value here });</code>
Dans cette approche, la fonction ne bloque pas et permet à la boucle d'événements de continuer à traiter d'autres tâches. Lorsque le rappel est invoqué, la fonction fournie gère le résultat de manière asynchrone.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!