Maison > interface Web > js tutoriel > Pourquoi js rappelle-t-il ?

Pourquoi js rappelle-t-il ?

little bottle
Libérer: 2019-05-31 13:20:31
original
2358 Les gens l'ont consulté

En Javascript, les fonctions sont des objets de première classe, ce qui signifie que les fonctions peuvent être utilisées comme des objets avec une gestion de première classe. Puisque les fonctions sont en fait des objets : elles peuvent être "stockées" dans des variables, passées en tant que paramètres de fonction, créées dans des fonctions et renvoyées par des fonctions. Les fonctions étant des objets de première classe, nous pouvons utiliser des fonctions de rappel en Javascript. Découvrons ensemble les rappels.

Pourquoi js rappelle-t-il ?

En termes simples : un rappel fait référence à une fonction qui est appelée après qu'une autre fonction ait terminé son exécution

C'est un un peu plus compliqué Pour parler franchement : en JavaScript, les fonctions sont aussi des objets. Par conséquent, les fonctions peuvent être transmises dans des fonctions en tant que paramètres et peuvent également être renvoyées par d'autres fonctions. Ces fonctions sont appelées fonctions d'ordre supérieur. La fonction passée en paramètre est appelée fonction de rappel.

Parlons de la raison pour laquelle nous avons besoin de rappels ?

Il y a une raison très importante : JavaScript est un langage piloté par les événements. Cela signifie que JavaScript ne cessera pas de s'exécuter en attendant une réponse, mais continuera à s'exécuter tout en écoutant d'autres événements.

Regardons un exemple de base :

function first(){
  console.log(1);
}
function second(){
  console.log(2);
}
first();
second();
Copier après la connexion

Comme vous pouvez vous y attendre, la première fonction est exécutée en premier, puis la deuxième fonction est exécutée - la sortie de la console est la suivante :

// 1
// 2
Copier après la connexion

Mais que se passe-t-il si la fonction contient d'abord du code qui ne peut pas être exécuté immédiatement ?

Par exemple une requête API où l'on doit envoyer une requête puis attendre une réponse ? Pour simuler cette situation, nous utiliserons setTimeout, qui est une fonction JavaScript qui appelle une fonction après un certain temps. Nous retardons la fonction de 500 millisecondes pour simuler une requête API. Le nouveau code ressemble à ceci :

function first(){
// 模拟代码延迟
  setTimeout( function(){
console.log(1);
  }, 500 );
}
function second(){
  console.log(2);
}
first();
second();
Copier après la connexion

Maintenant, il n'est pas important de comprendre comment fonctionne setTimeout(). avoir console.log( 1); déplacé à l'intérieur de la fonction de délai de 500 secondes. Alors, que se passe-t-il lorsque la fonction est appelée maintenant ?

first();
second();
// 2
// 1
Copier après la connexion

Même si nous avons appelé la fonction first() en premier, la sortie que nous avons enregistrée est après la fonction second().

Ce n'est pas un problème de JavaScript qui n'exécute pas les fonctions dans l'ordre souhaité, mais un problème de JavaScript qui n'attend pas la réponse de first() avant de passer à second().

Alors pourquoi tu montres ça ?

Parce que vous ne pouvez pas appeler des fonctions les unes après les autres et vous attendre à ce qu'elles s'exécutent dans le bon ordre.

Le rappel est le moyen de garantir qu'un morceau de code est exécuté avant qu'un autre morceau de code ne soit exécuté.

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:php.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
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