Skip to content

Instantly share code, notes, and snippets.

@AntoineMurat
Last active April 8, 2018 13:05
Show Gist options
  • Save AntoineMurat/9dbc0f9bcf5a19e0a02fedee9a02f265 to your computer and use it in GitHub Desktop.
Save AntoineMurat/9dbc0f9bcf5a19e0a02fedee9a02f265 to your computer and use it in GitHub Desktop.
ES6, démonstration pour mes kheys (Arrow functions, Promises, Templates & let)
// 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