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 :

Promise et multiple callback


Sujet :

JavaScript

  1. #1
    Membre �clair�
    Homme Profil pro
    Symfony - CMS Wordpress - Zend
    Inscrit en
    Septembre 2011
    Messages
    306
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activit� : Symfony - CMS Wordpress - Zend
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 306
    Par d�faut Promise et multiple callback
    Bonsoir,

    J'ouvre ce post qui a pour sujet les callback et promises

    je fais une iteration sur une requete HTTP comme �a:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
     
    array.forEach((value, key) => {
                ...
           getMyHttpRequest(value, result => {
                      ...
                 array.set(key,result)
           }).then(() => writeArray(lang, translatedArray));
    apr�s je dois appeler un fonction qui r�cup�re le r�sultat de mes requ�te.

    dans ma fonction de requ�te http je fais appel � une Promises:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
     
    var promise = new Promise((resolve, reject) => {
        https.get(options, (result) => {
       ....
        }
    });
    Voil� pour le code.
    Maintenant une explication:

    1. je r�it�re ma fonction de requ�te http
    2. je cr�er un promises afin d'attendre la fin pour recuperer le r�sutat
    3. les r�sultats me sont retourner dans le d�sordre
    4. du coup je me retrouve avec des valeurs vide car depandante des autres


    Comment attendre que le premier ai terminer avant de faire la requ�te suivante?
    Me conseillez-vous de faire un requ�te synchrone dans ce cas?
    Vu que je cr�e une nouvelle requ�te � chaque tours de boucle.
    Il m'est difficile de contr�l� l'ordre des retours?

  2. #2
    Expert confirm�
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 100
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activit� : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 100
    Par d�faut
    �a serait dommage de faire les requ�tes une par une alors que tu peux les faire en parall�le, simplement pour une question d�ordre.

    Je te conseille de lancer toutes tes requ�tes dans ta boucle, de garder une r�f�rence sur chacune dans un tableau, qui te permettra de conserver leur ordre, et d�utiliser Promise.all pour agir une fois qu�elles ont toutes abouti.

    �a va demander un peu de gymnastique mais je suis certain que c�est possible. Je te laisse chercher
    La FAQ JavaScript � Les cours JavaScript
    Touche F12 = la console → l�outil indispensable pour d�velopper en JavaScript !

Discussions similaires

  1. callback / promise
    Par rioll dans le forum AngularJS
    R�ponses: 4
    Dernier message: 28/05/2015, 11h11
  2. Multiple slideDown dans le callback d'un slideDown
    Par Olve.OnRollOver dans le forum jQuery
    R�ponses: 2
    Dernier message: 16/04/2012, 17h22
  3. R�ponses: 87
    Dernier message: 06/07/2011, 15h33
  4. Cr�ation multiple table paradox dans le code
    Par scarabee dans le forum C++Builder
    R�ponses: 8
    Dernier message: 30/10/2002, 10h17
  5. R�ponses: 6
    Dernier message: 25/03/2002, 21h11

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