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

NodeJS Discussion :

Création d'événements successifs


Sujet :

NodeJS

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 22
    Par défaut Création d'événements successifs
    Bonjour,

    je voudrais enclencher un événement dés qu'un autre est fini, pas avant.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var save = function(req, res)
    {
         load();
         res.redirect(/lien de ma page);
    }
    J'ai essayé un setTimeout mais ne connaissant pas le temps précis (et étant variable) je préférerais une autre solution...

    Merci :]

  2. #2
    Membre émérite Avatar de slim
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2002
    Messages
    938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2002
    Messages : 938
    Par défaut
    Bonjour,

    la fonction waterfall du composant async devrait répondre à ton besoin.

    Exemple :

    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
    async.waterfall([
        function(callback) {
            callback(null, 'one', 'two');
        },
        function(arg1, arg2, callback) {
          // arg1 now equals 'one' and arg2 now equals 'two'
            callback(null, 'three');
        },
        function(arg1, callback) {
            // arg1 now equals 'three'
            callback(null, 'done');
        }
    ], function (err, result) {
        // result now equals 'done'
    });
    Documentation : https://github.com/caolan/async#waterfall
    Faites une recherche sur le forum et/ou sur internet et lisez la doc officielle avant de poser une question svp.
    et n'oubliez pas de lire les FAQ !
    FAQ Java et les cours et tutoriels Java
    Doc JAVA officielle
    AngularJS 1.x
    Angular 2

    Do it simple... and RTFM !

  3. #3
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 22
    Par défaut
    Merci pour ta réponse rapide !

    J'ai essayé ta proposition mais j'obtiens un 'throw new error('can't set headers after they are sent.')' et je ne comprends pas trop pourquoi... J'ai programmé de la manière suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    async.waterfall([
         function(load) {
              load();
         },
         function() {
              res.redirect("/page/Settings Configuration");
         }
         ], function (err, result){
     
    });

  4. #4
    Membre émérite Avatar de slim
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2002
    Messages
    938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2002
    Messages : 938
    Par défaut
    can't see headers after they are sent
    Cette erreur survient lorsque la réponse est envoyée avant la fin du traitement de la requête... je sais pas si je suis clair...

    Je reformule. Dans ton code, tu n'as pas de callback et tu fais un redirect alors qu'il s'attend à un callback. Du coup, puisque le callback n'est pas exécuté, tu obtiens cette erreur.

    Essaie avec ça :
    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
     
    async.waterfall([
         function(callback) {
              var maVariable = "";
              var err = null;
              callback(err, maVariable);
         },
         function(maVariable, callback) {
               var err = null;
              res.redirect("/page/Settings Configuration");
              callback(err);
         }
         ], function (err, result){
         log.error(err); 
    });
    Faites une recherche sur le forum et/ou sur internet et lisez la doc officielle avant de poser une question svp.
    et n'oubliez pas de lire les FAQ !
    FAQ Java et les cours et tutoriels Java
    Doc JAVA officielle
    AngularJS 1.x
    Angular 2

    Do it simple... and RTFM !

  5. #5
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 22
    Par défaut
    Toujours pas... Je pense que je vais me contenter des setTimeout pour le moment. Je reviendrais à cela quand j'aurais un peu plus de gallon

    Merci beaucoup pour ton aide et ton temps

  6. #6
    Membre émérite Avatar de slim
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2002
    Messages
    938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2002
    Messages : 938
    Par défaut
    De rien, et j'ai ajouté les variable err juste pour te montrer qu'on pouvait passait les erreurs et d'autres variables d'une fonction à une autre.
    Essaie cela :

    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
    function(req, res){
      async.waterfall([
        function(next){
          next();
        },
    
        function(next){
          next();
        },
        function(){
          res.redirect('www.google.com')
        }
      ]);
    }
    
    Faites une recherche sur le forum et/ou sur internet et lisez la doc officielle avant de poser une question svp.
    et n'oubliez pas de lire les FAQ !
    FAQ Java et les cours et tutoriels Java
    Doc JAVA officielle
    AngularJS 1.x
    Angular 2

    Do it simple... and RTFM !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 01/09/2008, 18h33
  2. Réponses: 1
    Dernier message: 07/03/2008, 09h04
  3. Création d'évènements personnalisés.
    Par mr_keyser dans le forum Windows Forms
    Réponses: 3
    Dernier message: 01/09/2007, 21h40
  4. [VB.Net] création des événements
    Par maniani dans le forum Windows Forms
    Réponses: 2
    Dernier message: 02/10/2006, 23h21
  5. Création d'événements évenementiels /!\
    Par snooop34 dans le forum C++Builder
    Réponses: 3
    Dernier message: 24/11/2003, 14h52

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