Last active
April 8, 2018 13:05
-
-
Save AntoineMurat/9dbc0f9bcf5a19e0a02fedee9a02f265 to your computer and use it in GitHub Desktop.
ES6, démonstration pour mes kheys (Arrow functions, Promises, Templates & let)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// let à la place de var pour un scope de bloc et non de fonction. | |
// Ecritures équivalentes d'une fonction : | |
// | |
// function doubler(x){return 2*x} | |
// doubler = function(x){return 2*x} | |
// | |
// Mieux : | |
// let doubler = function(x){return 2*x} | |
// | |
// Arrow function (écriture "mathématique") | |
// let doubler = x => {return 2*x} | |
// | |
// Mieux (écriture vraiment "mathématique", return sous-entendu) : | |
// let doubler = x => 2*x | |
// | |
// Doubler tout un tableau : | |
// [1, 2, 3, 4].map(x=>2*x) | |
// Templates | |
// | |
// let qui = "Bastien" | |
// console.log(`salut ${qui}`) | |
// | |
// A la place de : | |
//`console.log('salut '+qui) | |
let envoyerMail = email => new Promise((resolve, reject) => { | |
setTimeout(_=>{ | |
if(Math.random()>0.1){ | |
resolve(`Mail envoyé à ${email}.`) | |
} else { | |
reject(`Erreur lors de l'envoi d'un mail à ${email}.`) | |
} | |
}, 500); | |
}) | |
let getEmailById = id => new Promise(function(resolve, reject){ | |
setTimeout(_ => { | |
if(Math.random()>0.1){ | |
resolve("toto@tata.fr") | |
} else { | |
reject(`Erreur lors de la récupération de l'email pour ${id}.`) | |
} | |
}, 500); | |
}) | |
let faireDesTrucs = _ => new Promise(function(resolve, reject){ | |
setTimeout(_ => { | |
if(Math.random()>0.1){ | |
console.log("Un truc de fait.") | |
resolve("Fait.") | |
} else { | |
reject("Erreur pendant la réalisation d'un truc.") | |
} | |
}, Math.random()*5000); | |
}) | |
let idUtilisateur = 7 | |
Promise.all([faireDesTrucs(), faireDesTrucs(), faireDesTrucs()]).then((msgs) => { | |
msgs.forEach(msg => { | |
console.log(msg) | |
}) | |
console.log(`Nous allons récupérer le mail de l'utilisateur ${idUtilisateur}`) | |
return getEmailById(7) | |
}).then(email => { | |
console.log(`Nous allons envoyer un mail à ${email}`) | |
return envoyerMail(email) | |
}).then(msg => { | |
console.log(msg) | |
}).catch(msg =>{ | |
console.log(msg) | |
}).then(_ => { | |
console.log("Finally, quoi qu'il arrive nous passerons par ici.") | |
}) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment