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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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