Maison > interface Web > js tutoriel > Une brève discussion sur les rappels dans Nodejs

Une brève discussion sur les rappels dans Nodejs

青灯夜游
Libérer: 2021-05-19 09:47:25
avant
2598 Les gens l'ont consulté

Cet article vous présentera le callback dans Nodejs. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il sera utile à tout le monde.

Une brève discussion sur les rappels dans Nodejs

Étude recommandée : "tutoriel nodejs"

Qu'est-ce que callback Évidemment, le sens littéral est rappel

?

Alors pourquoi avons-nous besoin d'opérations de rappel dans Node ? Les étudiants qui connaissent Node savent peut-être qu'il s'agit de gérer les résultats des opérations asynchrones.

Ce qui suit est une explication détaillée de ce problème :

Avant de parler du callback rappel du fonctionnement asynchrone, jetons un coup d'œil au mode de fonctionnement synchrone :

function processData () {
  var data = fetchData ();
  data += 1;
  return data;
}
Copier après la connexion

Ce Ce mode de synchronisation fonctionne généralement normalement, et cette opération est également typique dans d'autres environnements de développement. Vous pouvez alors clairement voir que si la méthode fectData prend beaucoup de temps lors du chargement des données, elle entraînera le blocage de l'ensemble du programme avant que le chargement de la synchronisation des données ne soit terminé.

Node.js est une plateforme de traitement d'opérations asynchrones. Son utilisation des rappels callback ne sera pas bloquée par les opérations d'E/S de fichiers. Une fonction de rappel est une fonction qui est exécutée une fois qu'une tâche donnée est terminée ; cette approche évite certaines situations de blocage tout en permettant à d'autres codes de continuer à s'exécuter.

Nous utilisons le formulaire de rappel de Node.js pour gérer l'opération de synchronisation ci-dessusfetchDataSituation chronophage :

function processData (callback) {
  fetchData(function (err, data) {
    if (err) {
      console.log("An error has occurred. Abort everything!");
      return callback(err);
    }
    data += 1;
    callback(data);
  });
}
Copier après la connexion

À première vue, cela semble un peu compliqué et pas facile. Comprenez, mais c'est vraiment important car les rappels gérant les opérations asynchrones sont le fondement de Node.js. Le rappel

callback signifie : une fois votre opération asynchrone terminée, vous exécutez le contenu dans mon rappel callback.

La forme de traitement de rappel des opérations asynchrones de Node.js nous permet de gérer autant d'opérations simultanées que possible (les opérations sont similaires aux opérations IO)

Par exemple :

dans Sur un service Web, plusieurs requêtes précédentes ont été bloquées pour une raison quelconque, et des centaines, voire des milliers de requêtes seront émises à l'avenir

Comment Node.js gérera-t-il cette situation de blocage asynchrone ? ?

Il exécutera les requêtes de blocage de manière asynchrone afin que les requêtes de requête suivantes puissent fonctionner normalement, au lieu d'attendre la fin de la requête de blocage précédente avant de traiter les requêtes suivantes.

Ce qui suit est un format typique pour l'utilisation de fonctions asynchrones :

function asyncOperation ( a, b, c, callback ) {
  // ... lots of hard work ...
  if ( /* an error occurs */ ) {
    return callback(new Error("An error has occurred"));
  }
  // ... more work ...
  callback(null, d, e, f);
}

asyncOperation ( params.., function ( err, returnValues.. ) {
  //This code gets run after the async operation gets run
});
Copier après la connexion

callback est généralement le dernier paramètre de la fonction asynchrone. Lorsque l'opération asynchrone se termine, appelez ceci callback.

Généralement, le premier paramètre de callback est error

Si une opération asynchrone rencontre une erreur, callback sera appelé et le premier paramètre est un objet Error ; sinon, le premier error est null, et les autres paramètres sont renvoyés normalement.

Adresse originale en anglais : https://nodejs.org/en/knowledge/getting-started/control-flow/what-are-callbacks/

Plus pour connaissances liées à la programmation, veuillez visiter : Vidéo de programmation ! !

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!

Étiquettes associées:
source:juejin.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal