JavaScript Tutorial

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

Articles similaires

Bouton retour en haut de la page