Table des matières
Qu'est-ce qu'une fonction de rappel
Pourquoi avons-nous besoin de rappels ?
Créer une fonction de rappel
Un exemple réel
Maison interface Web Questions et réponses frontales Qu'est-ce qu'une fonction de rappel en javascript ?

Qu'est-ce qu'une fonction de rappel en javascript ?

Jun 29, 2021 pm 05:58 PM
javascript 回调函数

En JavaScript, une fonction de rappel est une fonction qui est passée en paramètre. La fonction A est passée en paramètre (référence de fonction) à une autre fonction B, et cette fonction B exécute la fonction A. La fonction A est appelée fonction de rappel ; s'il n'y a pas de nom (expression de fonction), elle est appelée fonction de rappel anonyme ;

Qu'est-ce qu'une fonction de rappel en javascript ?

L'environnement d'exploitation de ce tutoriel : système Windows 7, JavaScript version 1.8.5, ordinateur Dell G3.

Qu'est-ce qu'une fonction de rappel

En JavaScript, les fonctions sont des objets. Par conséquent, les fonctions peuvent prendre des fonctions comme paramètres et peuvent être renvoyées par d’autres fonctions. Les fonctions qui font cela sont appelées fonctions d'ordre supérieur. Toute fonction passée en paramètre est appelée fonction de rappel.

La définition spécifique de la fonction de rappel est la suivante : la fonction A est passée en paramètre (référence de fonction) à une autre fonction B, et cette fonction B exécute la fonction A. Disons simplement que la fonction A est appelée fonction de rappel. S'il n'y a pas de nom (expression de fonction), on parle de fonction de rappel anonyme.

Pourquoi avons-nous besoin de rappels ?

Pour une raison très importante : JavaScript est un langage piloté par les événements. Cela signifie que JavaScript ne continuera pas à attendre 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 fonction est exécutée en premier, puis la deuxième fonction, en enregistrant ce qui suit sur la console :

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

Tout jusqu'à présent est très bien.

Mais que se passe-t-il si la fonction contient du code qui ne peut pas être exécuté immédiatement ? Par exemple, une requête API où nous devons d'abord envoyer la requête puis attendre la réponse ? Pour simuler cette action, setTimeout sera utilisé, qui est une fonction JavaScript qui sera appelée après un temps défini. Nous retardons la fonction de 500 millisecondes pour simuler une requête API. Notre nouveau code ressemblera à ceci :

function first(){
  // Simulate a code delay
  setTimeout( function(){
    console.log(1);
  }, 500 );
}
function second(){
  console.log(2);
}
first();
second();
Copier après la connexion

Il n'est pas important de comprendre comment fonctionne setTimeout() maintenant. Surtout, vous voyez que nous avons déplacé console.log(1) dans le délai de 500 ms. Alors, que se passe-t-il lorsque nous appelons une fonction ?

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

Même si nous avons appelé la fonction first() en premier, nous avons imprimé son résultat après la fonction second().

Ce n'est pas que JavaScript n'exécute pas nos fonctions dans l'ordre souhaité, c'est que JavaScript n'attend pas la réponse de first() avant de continuer avec second().

Alors pourquoi tu montres ça ? Parce que vous ne pouvez pas appeler une fonction après l’autre et vous attendre à ce qu’elles s’exécutent dans le bon ordre. Les rappels sont un moyen de garantir que certains codes ne s'exécutent pas tant que d'autres codes n'ont pas fini de s'exécuter.

Créer une fonction de rappel

D'accord, sans plus tarder, créons un rappel !

Tout d'abord, ouvrez votre console de développement Chrome (Windows : Ctrl + Shift + J) (Mac : Cmd + Option + J) et tapez la déclaration de fonction suivante dans la console :

function doHomework(subject) {
  alert(`Starting my ${subject} homework.`);
}
Copier après la connexion

Maintenant, passons ajoutez le rappel - comme dernier paramètre de la fonction doHomework() que nous pouvons transmettre dans le rappel. Définissez ensuite la fonction de rappel dans le deuxième paramètre de l'appel à doHomework().

function doHomework(subject, callback) {
  alert(`Starting my ${subject} homework.`);
  callback();
}

doHomework('math', function() {
  alert('Finished my homework');
});
Copier après la connexion

Comme vous pouvez le constater, si vous saisissez le code ci-dessus dans la console, vous recevrez deux alertes : l'alerte "début des devoirs", puis l'alerte "devoirs terminés".

Cependant, il n'est pas toujours nécessaire de définir une fonction de rappel dans notre appel de fonction. Ils peuvent être définis ailleurs dans notre code, comme ceci :

function doHomework(subject, callback) {
  alert(`Starting my ${subject} homework.`);
  callback();
}
function alertFinished(){
  alert('Finished my homework');
}
doHomework('math', alertFinished);
Copier après la connexion

Le résultat de cet exemple est exactement le même que l'exemple précédent, mais les paramètres sont légèrement différents. Nous pouvons voir que lors de l’appel de la fonction doHomework(), nous avons passé la définition de la fonction alertFinished en paramètre.

Un exemple réel

Nous essayons d'appeler l'API de Twitter. Lorsque vous adressez une requête à une API, vous devez attendre une réponse avant de pouvoir agir sur cette réponse. C'est un bon exemple de véritable rappel. La requête ressemble à ceci :

T.get('search/tweets', params, function(err, data, response) {
  if(!err){
    // This is where the magic will happen
  } else {
    console.log(err);
  }
})
Copier après la connexion

T.get signifie que nous envoyons une requête get à Twitter

Il y a trois paramètres inclus dans cette requête : "search/tweets" (c'est l'itinéraire de notre requête), params (qui sont nos paramètres de recherche) et une fonction anonyme (qui est notre rappel).

Le rappel est important ici car nous devons attendre la réponse du serveur avant de pouvoir continuer à exécuter le code. Nous ne savons pas si notre requête API réussira, donc après avoir envoyé les paramètres à search/tweets via une requête get, nous attendons. Une fois que Twitter aura répondu, notre fonction de rappel sera appelée. Twitter nous enverra un objet d'erreur (erreur) ou un objet de réponse. Dans la fonction de rappel, nous pouvons utiliser une instruction if() pour déterminer si notre demande a réussi, puis agir en conséquence sur les nouvelles données.

[Recommandations associées : Tutoriel d'apprentissage Javascript]

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!

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment mettre en œuvre un système de reconnaissance vocale en ligne à l'aide de WebSocket et JavaScript Comment mettre en œuvre un système de reconnaissance vocale en ligne à l'aide de WebSocket et JavaScript Dec 17, 2023 pm 02:54 PM

Comment utiliser WebSocket et JavaScript pour mettre en œuvre un système de reconnaissance vocale en ligne Introduction : Avec le développement continu de la technologie, la technologie de reconnaissance vocale est devenue une partie importante du domaine de l'intelligence artificielle. Le système de reconnaissance vocale en ligne basé sur WebSocket et JavaScript présente les caractéristiques d'une faible latence, d'un temps réel et d'une multiplateforme, et est devenu une solution largement utilisée. Cet article explique comment utiliser WebSocket et JavaScript pour implémenter un système de reconnaissance vocale en ligne.

WebSocket et JavaScript : technologies clés pour mettre en œuvre des systèmes de surveillance en temps réel WebSocket et JavaScript : technologies clés pour mettre en œuvre des systèmes de surveillance en temps réel Dec 17, 2023 pm 05:30 PM

WebSocket et JavaScript : technologies clés pour réaliser des systèmes de surveillance en temps réel Introduction : Avec le développement rapide de la technologie Internet, les systèmes de surveillance en temps réel ont été largement utilisés dans divers domaines. L'une des technologies clés pour réaliser une surveillance en temps réel est la combinaison de WebSocket et de JavaScript. Cet article présentera l'application de WebSocket et JavaScript dans les systèmes de surveillance en temps réel, donnera des exemples de code et expliquera leurs principes de mise en œuvre en détail. 1. Technologie WebSocket

Comment utiliser JavaScript et WebSocket pour mettre en œuvre un système de commande en ligne en temps réel Comment utiliser JavaScript et WebSocket pour mettre en œuvre un système de commande en ligne en temps réel Dec 17, 2023 pm 12:09 PM

Introduction à l'utilisation de JavaScript et de WebSocket pour mettre en œuvre un système de commande en ligne en temps réel : avec la popularité d'Internet et les progrès de la technologie, de plus en plus de restaurants ont commencé à proposer des services de commande en ligne. Afin de mettre en œuvre un système de commande en ligne en temps réel, nous pouvons utiliser les technologies JavaScript et WebSocket. WebSocket est un protocole de communication full-duplex basé sur le protocole TCP, qui peut réaliser une communication bidirectionnelle en temps réel entre le client et le serveur. Dans le système de commande en ligne en temps réel, lorsque l'utilisateur sélectionne des plats et passe une commande

Comment écrire une fonction de rappel Java Comment écrire une fonction de rappel Java Jan 09, 2024 pm 02:24 PM

Les méthodes d'écriture de la fonction de rappel Java sont : 1. Rappel d'interface, définir une interface qui contient une méthode de rappel, utiliser l'interface comme paramètre où le rappel doit être déclenché et appeler la méthode de rappel au moment approprié ; Rappel de classe interne anonyme, vous pouvez utiliser des classes internes anonymes pour implémenter des fonctions de rappel afin d'éviter de créer des classes d'implémentation supplémentaires ; 3. Rappels d'expressions Lambda Dans Java 8 et versions ultérieures, vous pouvez utiliser des expressions Lambda pour simplifier l'écriture des fonctions de rappel.

Comment mettre en œuvre un système de réservation en ligne à l'aide de WebSocket et JavaScript Comment mettre en œuvre un système de réservation en ligne à l'aide de WebSocket et JavaScript Dec 17, 2023 am 09:39 AM

Comment utiliser WebSocket et JavaScript pour mettre en œuvre un système de réservation en ligne. À l'ère numérique d'aujourd'hui, de plus en plus d'entreprises et de services doivent fournir des fonctions de réservation en ligne. Il est crucial de mettre en place un système de réservation en ligne efficace et en temps réel. Cet article explique comment utiliser WebSocket et JavaScript pour implémenter un système de réservation en ligne et fournit des exemples de code spécifiques. 1. Qu'est-ce que WebSocket ? WebSocket est une méthode full-duplex sur une seule connexion TCP.

JavaScript et WebSocket : créer un système efficace de prévisions météorologiques en temps réel JavaScript et WebSocket : créer un système efficace de prévisions météorologiques en temps réel Dec 17, 2023 pm 05:13 PM

JavaScript et WebSocket : Construire un système efficace de prévisions météorologiques en temps réel Introduction : Aujourd'hui, la précision des prévisions météorologiques revêt une grande importance pour la vie quotidienne et la prise de décision. À mesure que la technologie évolue, nous pouvons fournir des prévisions météorologiques plus précises et plus fiables en obtenant des données météorologiques en temps réel. Dans cet article, nous apprendrons comment utiliser la technologie JavaScript et WebSocket pour créer un système efficace de prévisions météorologiques en temps réel. Cet article démontrera le processus de mise en œuvre à travers des exemples de code spécifiques. Nous

Tutoriel JavaScript simple : Comment obtenir le code d'état HTTP Tutoriel JavaScript simple : Comment obtenir le code d'état HTTP Jan 05, 2024 pm 06:08 PM

Tutoriel JavaScript : Comment obtenir le code d'état HTTP, des exemples de code spécifiques sont requis Préface : Dans le développement Web, l'interaction des données avec le serveur est souvent impliquée. Lors de la communication avec le serveur, nous devons souvent obtenir le code d'état HTTP renvoyé pour déterminer si l'opération a réussi et effectuer le traitement correspondant en fonction de différents codes d'état. Cet article vous apprendra comment utiliser JavaScript pour obtenir des codes d'état HTTP et fournira quelques exemples de codes pratiques. Utilisation de XMLHttpRequest

Syntaxe de base et application des fonctions de rappel en Java Syntaxe de base et application des fonctions de rappel en Java Jan 30, 2024 am 08:12 AM

Introduction à l'écriture de base et à l'utilisation des fonctions de rappel Java : dans la programmation Java, la fonction de rappel est un modèle de programmation courant. Grâce à la fonction de rappel, une méthode peut être transmise en tant que paramètre à une autre méthode, réalisant ainsi un appel indirect de la méthode. L'utilisation de fonctions de rappel est très courante dans des scénarios tels que la programmation événementielle et asynchrone et la mise en œuvre d'interfaces. Cet article présentera l'écriture et l'utilisation de base des fonctions de rappel Java et fournira des exemples de code spécifiques. 1. Définition de la fonction de rappel Une fonction de rappel est une fonction spéciale qui peut être utilisée comme paramètre

See all articles