Comportement entre Callback et Promise
Bonjour,
Je ne comprends pas pourquoi dans mon code partie CALLBACK la valeur "resolved !" s'affiche avant le "End", étrange !
Par contre, je trouve logique que la partie PROMISE affiche "resolved !" avant le "End".
Pouvez-vous m'expliquer ?
Voici mon code en deux parties la première est la partie CALLBACK et la seconde PROMISE.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| //----------------- Start: CALLBACK ------------------------------------
console.log('------------ CALLBACK -------------------')
console.log('Start')
getMember((member) => { console.log(member) })
function getMember(next) {
console.log('calling');
// setTimeout(() => { next('resolved !') }, 1500)
for (let index = 0; index < 1000000000; index++) { }
next('resolved !')
}
console.log('End')
//
// RETURN:
// ------
// Start
// calling
// resolved !
// End
//----------------- End: CALLBACK -------------------------------------- |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| //----------------- Start: PROMISE -------------------------------------
console.log('------------ PROMISE -------------------')
console.log('Start')
new Promise((resolve, reject) => {
console.log('calling')
// setTimeout(() => { resolve('resolved !'), reject(new Error('error during...')) }, 1500)
for (let index = 0; index < 1000000000; index++) { }
resolve('resolved !');
})
.then(message => console.log(message))
.catch(err => console.log(err.message))
console.log('End')
//
// RETURN:
// ------
// Start
// calling
// End
// resolved !
//----------------- End: PROMISE --------------------------------------- |
Merci d'avance,
Yves