31
loading...
This website collects cookies to deliver better user experience
// Exemple d'une fonction fetch() renvoyant une promesse
const request = fetch('http://example.com/api/cats')
// Retourne une promesse
console.log(request) // Promise {<pending>}
// Exemple d'une fonction fetch() renvoyant une promesse
const getCatsImage = function() {
// La fonction fetch() renvoie une promesse
// Lorsque la promesse est remplie, la fonction s'exécute
// Le résultat est contenu dans le paramètre data
const request = fetch('http://example.com/api/cats')
.then(response => return response.json())
.then(data => loadCatImage(data[0]))
})
}
const getCatsImage = function() {
// La fonction fetch() renvoie une promesse
// Lorsque la promesse est remplie, la fonction s'exécute
// Le résultat est contenu dans le paramètre data
// Si y il a erreur la fonction catch() va s'éxécuter
// La fonction finally() s'éxécute dans tous les cas
const request = fetch('http://example.com/api/cats')
.then(response => return response.json())
.then(data => loadCatImage(data[0]))
.catch(err => console.log(err))
.finally(() => console.log('Run after both')
})
}
const wait = function(sec) {
return new Promise(function(resolve, reject) {
setTimeout(() => {
resolve('wait over')
}, sec * 1000)
})
}
wait(3).then((msg) => console.log(msg)) // wait over
// Async exécute la fonction en mode asynchrone
// et retourne une promesse
const delay = async function(sec) {
// Await met en pause le bloc de fonction asynchrone du code
// jusqu'à ce que la promesse retourne un résultat
const response = await new Promise(function(resolve, reject) {
setTimeout(() => {
resolve('wait over')
}, sec * 1000)
})
console.log(response)
}
delay(3)
const delay = async function(sec) {
try {
const response = await new Promise(function(resolve, reject) {
setTimeout(() => {
resolve('wait over')
}, sec * 1000)
})
console.log(response)
} catch(err) {
console.log(err.message)
// You can also throw error up to calling parent
throw err
}
}
delay(3)
(async function() {
const cats = await getCats()
console.log('start')
console.log(cats)
console.log('end')
})()
console.log('start')
getCats().then(cats => {
console.log(cats)
console.log('end')
}
(async function() {
// const cats = await getCats()
// const dogs = await getDogs()
// utiliser Promise.all pour exécution en parallèle
const data = await Promise.all([getCats(), getDogs()])
console.log('start')
// Promise.All returne un tableau
console.log(data[0]) //cats
console.log(data[1]) //dogs
console.log('end')
})()