"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment gérer l'achèvement des rappels asynchrones dans Node.js ?

Comment gérer l'achèvement des rappels asynchrones dans Node.js ?

Publié le 2024-11-03
Parcourir:581

How to Handle Asynchronous Callback Completion in Node.js?

Gestion 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 :

function(query) {
  myApi.exec('SomeCommand', function(response) {
    return response;
  });
}

Le but est d'appeler myApi.exec et de renvoyer la réponse reçue dans le rappel. Cependant, ce code est renvoyé immédiatement, le rendant inefficace.

La solution basée sur les événements

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.

function(query, callback) {
  myApi.exec('SomeCommand', function(response) {
    // additional processing...

    callback(response); // This "returns" the value to the caller
  });
}

Utilisation :

myFunction(query, function(returnValue) {
  // Use the return value here
});

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.

Déclaration de sortie Cet article est réimprimé à l'adresse : 1729504094. En cas d'infraction, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3