Promise, await/async ou callback

Pour toutes les discussions javascript, jQuery et autres frameworks
Répondre
lionellionel
Messages : 1
Enregistré le : 03 nov. 2019, 17:05

Promise, await/async ou callback

Message par lionellionel » 03 nov. 2019, 17:07

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 :

Code : Tout sélectionner

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

Avatar du membre
webmaster
Administrateur du site
Messages : 102
Enregistré le : 28 févr. 2017, 15:19

Re: Promise, await/async ou callback

Message par webmaster » 04 nov. 2019, 10:04

Bonjour,

Je ne suis pas un expert en promise mais le comportement me parait logique
Le 1 est la première notif (qui doit arriver tout de suite)
Le 4 est la suite du script en synchrone
Les 2 dernières notifications arrivent à la suite l'une de l'autre

Quel est le comportement attendu ?
TJS : 20 ans et mon livre Tout JavaScript chez Dunod
https://www.toutjavascript.com/livre/index.php

Répondre