IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Indice boucle for avec then.. catch


Sujet :

JavaScript

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2018
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Indice boucle for avec then.. catch
    Bonjour à tous,

    Dans le cadre d'un projet étudiant, je souhaite lister les différents événements possibles dans une salle .

    Je possède 3 salles, dont le nom et le numéro sont contenus dans un Array .

    A l'aide d'une boucle for, je tente de lister chaque évènement (nommé: event) de chaque salle .

    Au début de la boucle (voir console.log : log1): Je parcoure bien chacune des salles (Salle_1, Salle_2, Salle_3)

    Cependant au sein de cette boucle for, se trouve la fonction cal.Events.list, (Script Google API), qui utilise .then .catch ,

    Je m'aperçois (voir console.log: log2) que seule la dernière salle est parcourue (Salle_3) .

    Je pense que ma boucle for est plus rapide d'execution que la fonction cal.Events.List, pour cause: le .then .catch (supposition) .

    Pouvez-vous m'éclairer à ce sujet ?

    Merci d'avance

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    listeSalles = {
      'Salle_1': 'chambre',
    'Salle_2': 'cuisine',
    'Salle_3': 'salle_de_bain'
    };
    for(var mesSalles in listeSalles)
    {
    let eventsArray = [];
    console.log("Log 1:" + mesSalles); //Dans ce log apparaissent: "Salle_1", "Salle_2", "Salle_3" (Très bien !)
     
     
    cal.Events.list(listeSalles[mesSalles], params2, {})
     .then(json => {
     console.log("Log 2:" + mesSalles); //Dans ce log apparait: "Salle_3", "Salle_3", "Salle_3" !
    for (let i = 0; i < json.length; i++) {
    let event = {
    id: json[i].id,
    nom: json[i].nom
     };
    eventsArray.push(event);
     
    console.log("Id:" + event.id);
     console.log("Nom:" + event.nom);
     
     }
     
    // return eventsArray;
    }).catch(err => {
     console.log('Error: ', err.message);
    });
    }

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 054
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 054
    Points : 44 568
    Points
    44 568
    Par défaut
    Bonjour,
    elle est où la logique de déclaration de tes variables avec var ou let ?

    Essaie donc en mettant un let dans ton for( ....

  3. #3
    Expert confirmé Avatar de psychadelic
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    2 529
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 2 529
    Points : 4 742
    Points
    4 742
    Par défaut
    c'est pas que la boucle for soit "plus rapide", c'est plutôt que la fonction cal.Event;list(... est une fonction asynchrone.

    tu peux peut être t'en tirer en plaçant tout le contenu dans une fonction ayant pour paramètre d'entrée tes 2 variables listeSalles[mesSalles] et params2 utilisées par la dite boucle. ?
    «La pluralité des voix n'est pas une preuve, pour les vérités malaisées à découvrir, tant il est bien plus vraisemblable qu'un homme seul les ait rencontrées que tout un peuple.» [ René Descartes ] - Discours de la méthode

  4. #4
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut
    Citation Envoyé par DevGam Voir le message
    Je possède 3 salles, dont le nom et le numéro sont contenus dans un Array .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    listeSalles = {
      'Salle_1': 'chambre',
    'Salle_2': 'cuisine',
    'Salle_3': 'salle_de_bain'
    };
    Non, c'est un Object !

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2018
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par psychadelic Voir le message
    c'est pas que la boucle for soit "plus rapide", c'est plutôt que la fonction cal.Event;list(... est une fonction asynchrone.

    tu peux peut être t'en tirer en plaçant tout le contenu dans une fonction ayant pour paramètre d'entrée tes 2 variables listeSalles[mesSalles] et params2 utilisées par la dite boucle. ?
    Merci j'essayerais !

    Citation Envoyé par danielhagnoul Voir le message
    Non, c'est un Object !

Discussions similaires

  1. Boucle for avec SELECT et variable indicée
    Par hisin dans le forum Langage
    Réponses: 4
    Dernier message: 14/12/2009, 11h53
  2. Boucle for avec saut
    Par michel71 dans le forum Delphi
    Réponses: 3
    Dernier message: 25/02/2007, 16h16
  3. boucle for avec condition
    Par Daniel Magron dans le forum Delphi
    Réponses: 4
    Dernier message: 22/01/2007, 16h18
  4. Réponses: 2
    Dernier message: 28/08/2006, 18h17
  5. [VB6] boucle for avec liste de valeur defini
    Par Morpheus2144 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 06/04/2006, 18h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo