Bonjour.

Je travaille sur un bot Discord avec discord.js, et ce dernier utilise les Promises.
Je découvre donc les mots-clés await et async, et j'ai écrit ce code (log() étant un wrapper de console.log()) :

Code js : 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
function registerGuild(guild) {
    let Promise1 = guild.members.fetch(userId);
    let Promise2 = guild.roles.fetch();
 
    log(1);
    let promiseExecution = async () => {
        log(3);
        let promise = await Promise.all([Promise1, Promise2]);
        log(4);
        return promise;
    }
    log(2);
    promiseExecution()
        .then(data => {/**/})
        .catch(console.error);
    log(5);
}

Je m'attends à voir 1 2 3 4 5, mais je vois 1 2 3 5. Et effectivement c'est comme si la fonction s'arrête subitement à la ligne 8. Pourtant le log(5) est bien executé.

Je dois rater quelque chose mais je comprends pas.