JavaScript asynchrone

« Je finirai plus tard ! »
Fonctions en cours d’exécution parallèle avec d’autres fonctions sont appelées asynchrone
Un bon exemple est JavaScript setTimeout()
JavaScript asynchrone
Les exemples utilisés dans le chapitre précédent, a été très simplifié.
Le but des exemples était de démontrer la syntaxe des fonctions de rappel :
Exemple
function monAfficheur(quelque chose) {
document.getElementById(« demo »).innerHTML = quelque chose ;
}
function maCalculatrice(num1, num2, myCallback) {
soit somme = num1 + num2 ;
monRappel(somme);
}
maCalculatrice(5, 5, monAfficheur);
Essayez-le vous-même »
Dans l’exemple ci-dessus, myDisplayer
est le nom d’une fonction.
Il est passé à myCalculator()
comme argument.
Dans le monde réel, les rappels sont le plus souvent utilisés avec des fonctions asynchrones.
Un exemple typique est JavaScript setTimeout()
.
Attente d’un délai d’attente
Lors de l’utilisation de la fonction JavaScript setTimeout()
vous pouvez spécifier une fonction de rappel à exécuter à l’expiration du délai :
Exemple
setTimeout(maFonction, 3000);
function maFonction() {
document.getElementById(« demo »).innerHTML = « Je t’aime !! »;
}
Essayez-le vous-même »
Dans l’exemple ci-dessus, myFunction
est utilisé comme rappel.
myFunction
est passé à setTimeout()
comme argument.
3000 est le nombre de millisecondes avant l’expiration du délai, donc
myFunction()
sera appelé après 3 secondes.
Note
Lorsque vous passez une fonction en argument, n’oubliez pas de ne pas utiliser de parenthèses.
A droite : setTimeout(myFunction, 3000);
Faux: setTimeout(maFonction(), 3000);
Au lieu de passer le nom d’une fonction comme argument à une autre fonction, vous pouvez toujours passer une fonction entière à la place :
Exemple
setTimeout(fonction() { maFonction(« Je t’aime !!! »); }, 3000);
function maFonction(valeur) {
document.getElementById(« démo »).innerHTML = valeur ;
}
Essayez-le vous-même »
Dans l’exemple ci-dessus, function(){ myFunction("I love You !!!"); }
est utilisé comme rappel. C’est une fonction complète. La fonction complète est passée à setTimeout() en tant qu’argument.
3000 est le nombre de millisecondes avant l’expiration du délai, donc
myFunction()
sera appelé après 3 secondes.
Intervalles d’attente :
Lors de l’utilisation de la fonction JavaScript setInterval()
vous pouvez spécifier une fonction de rappel à exécuter pour chaque intervalle :
Exemple
setInterval(maFonction, 1000);
function maFonction() {
soit d = nouvelle Date();
document.getElementById(« demo »).innerHTML=
d.getHours() + « : » +
d.getMinutes() + « : » +
d.getSeconds();
}
Essayez-le vous-même »
Dans l’exemple ci-dessus, myFunction
est utilisé comme rappel.
myFunction
est passé à setInterval()
comme argument.
1000 est le nombre de millisecondes entre les intervalles, donc
myFunction()
sera appelé à chaque seconde.
Alternatives de rappel
Avec la programmation asynchrone, les programmes JavaScript peuvent démarrer des tâches de longue durée et continuer à exécuter d’autres tâches en parallèle.
Mais les programmes asynchrones sont difficiles à écrire et difficiles à déboguer.
Pour cette raison, la plupart des méthodes JavaScript asynchrones modernes n’utilisent pas de rappels. Au lieu de cela, en JavaScript, la programmation asynchrone est résolue en utilisant Promesses plutôt.
Note
Vous en apprendrez plus sur les promesses dans le prochain chapitre de ce didacticiel.
#JavaScript #asynchrone