11521 sujets

JavaScript, DOM et API Web HTML5

Bonjour à tous,

Depuis quelques années, je n'ai pas développé en JS et j'ai besoin de reprendre un script tout simple mais il ne exécute pas dans l'ordre.

Le voici :
```
getNotificationSounds2(serialOrName, idSound, callback)
{
console.log("1");
let result="";
this.getNotificationSounds(serialOrName, (err, res) =>
{
console.log("2");
res.notificationSounds.forEach(function(item, index) {
if (item['id'] == idSound) {
result=item;
console.log("3");
}
});
});
console.log("4");
return result;
}
```

Je me retrouve avec 1 puis 4 puis 2 puis 3

Je sais c'est l'erreur classique de JS en synchrone / asynchrone et j'imagine que c'est tout simple à changer mais j'ai passé l'après midi a essayer de retrouver comment faire.

Une bonne âme pourrait m'aider ?

Merci
Salut Lionel (je suppose Smiley smile ) et bienvenu.

Il manque la déclaration de la méthode `this.getNotificationSounds()` pour pouvoir répondre à ta question.
En effet, si la fonction de callback est exécutée de manière asynchrone, l'ordre que tu constates est normal.
Donc poste ici la méthode `getNotificationSounds()` de ta classe et on aura une meilleure idée de ce qui se passe.