JavaScript asynchrone

“async et await rendent les promesses plus faciles à écrire”
asynchrone fait qu’une fonction retourne une promesse
attendre fait attendre une fonction pour une Promise
Syntaxe asynchrone
Le mot clé async
avant qu’une fonction ne lui fasse renvoyer une promesse :
Exemple
fonction asynchrone maFonction() {
retourner “Bonjour” ;
}
Est le même que:
function maFonction() {
return Promise.resolve(“Bonjour”);
}
Voici comment utiliser la Promesse :
maFonction().then(
fonction (valeur) { /* code si réussi */ },
fonction (erreur) { /* code si une erreur */ }
);
Exemple
fonction asynchrone maFonction() {
retourner “Bonjour” ;
}
maFonction().then(
fonction (valeur) {monAfficheur (valeur);},
function(error) {myDisplayer(error);}
);
Essayez-le vous-même »
Ou plus simple, puisque vous attendez une valeur normale (une réponse normale, pas une erreur) :
Exemple
fonction asynchrone maFonction() {
retourner “Bonjour” ;
}
maFonction().then(
fonction(valeur) {monAfficheur(valeur);}
);
Essayez-le vous-même »
Attendre la syntaxe
Le await
mot-clé ne peut être utilisé qu’à l’intérieur d’un
async
fonction.
Le await
mot-clé fait que la fonction interrompt l’exécution et attend une promesse résolue avant de continuer :
laisser valeur = attendre promesse ;
Exemple
Allons-y doucement et apprenons à l’utiliser.
Syntaxe de base
fonction asynchrone monAffichage() {
let myPromise = new Promise(function(ressolve, rejette) {
résoudre(“Je t’aime !!”);
});
document.getElementById(“demo”).innerHTML = attendre maPromise ;
}
monAffichage();
Essayez-le vous-même »
Les deux arguments (résolution et rejet) sont prédéfinis par JavaScript.
Nous ne les créerons pas, mais en appellerons une lorsque la fonction d’exécuteur sera prête.
Très souvent, nous n’aurons pas besoin d’une fonction de rejet.
Exemple sans rejet
fonction asynchrone monAffichage() {
let myPromise = new Promise(function(resolve) {
résoudre(“Je t’aime !!”);
});
document.getElementById(“demo”).innerHTML = attendre maPromise ;
}
monAffichage();
Essayez-le vous-même »
Attente d’un délai d’attente
fonction asynchrone monAffichage() {
let myPromise = new Promise(function(resolve) {
setTimeout(function() {resolve(“Je t’aime !!”);}, 3000);
});
document.getElementById(“demo”).innerHTML = attendre maPromise ;
}
monAffichage();
Essayez-le vous-même »
En attente d’un fichier
fonction asynchrone getFile() {
let myPromise = new Promise(function(resolve) {
laissez req = new XMLHttpRequest();
req.open(‘GET’, “mavoiture.html”);
req.onload = fonction() {
si (req.status == 200) {
résoudre (req. réponse);
} autre {
résoudre(“Fichier introuvable”);
}
} ;
req.send();
});
document.getElementById(“demo”).innerHTML = attendre maPromise ;
}
obtenirFichier();
Essayez-le vous-même »
Prise en charge du navigateur
ECMAScript 2017 a introduit les mots-clés JavaScript
async
et await
.
Le tableau suivant définit la première version du navigateur avec prise en charge complète des deux :
Chrome 55 | Bord 15 | Firefox 52 | Safari 11 | Opéra 42 |
décembre 2016 | avril 2017 | mars 2017 | Septembre 2017 | décembre 2016 |
#JavaScript #asynchrone