Maison > interface Web > js tutoriel > le corps du texte

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

Linda Hamilton
Libérer: 2024-10-21 17:54:11
original
279 Les gens l'ont consulté

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 :

<code class="js">function(query) {
  myApi.exec('SomeCommand', function(response) {
    return response;
  });
}</code>
Copier après la connexion

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.

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.

<code class="js">function(query, callback) {
  myApi.exec('SomeCommand', function(response) {
    // additional processing...

    callback(response); // This "returns" the value to the caller
  });
}</code>
Copier après la connexion

Utilisation :

<code class="js">myFunction(query, function(returnValue) {
  // Use the return value here
});</code>
Copier après la connexion

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!

source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!