Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1722 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Problème d'asynchronicité avec Node.js et Async.js

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème d'asynchronicité avec Node.js et Async.js

n°2144536
real_matho​s
Posté le 04-06-2012 à 18:34:10  profilanswer
 

Salut,
J'essaie d'écrire une fonction permettant de charger toutes les associations dans une liste d'objets récupérés via Sequelize.js . Le problème est que les méthodes de Sequelize s'exécutent toutes en asynchrone. Du coup c'est assez difficile de les enchaîner dans un ordre précis.
 
Voilà comment je procède:
 
- Je récupère d'abord ma liste d'objets
- Ensuite je parcours chaque objet, je lance une requête pour chaque association et je stocke le résultat obtenu dans l'objet
 
Voilà un exemple de code:

Code :
  1. db.Bien.findAll({
  2.       where: {
  3.         ville: req.param('ville')
  4.       }
  5.     }).success(function(biens) {
  6.       helper.loadAssocs(biens, ['Proprietaire']).success(function() {
  7.       })
  8.     }
  9.     loadAssocs = function(objects, assocsToLoad) {
  10.       var func, func2, i, object, _i, _len;
  11.       if (!Array.isArray(objects)) {
  12.         objects = [objects];
  13.       }
  14.       if (!Array.isArray(assocsToLoad)) {
  15.         assocsToLoad = [assocsToLoad];
  16.       }
  17.       for (i = _i = 0, _len = objects.length; _i < _len; i = ++_i) {
  18.         object = objects[i];
  19.         object[i].assocsToLoad = assocsToLoad;
  20.       }
  21.       func2 = function(callback) {
  22.         var assocName;
  23.         console.log('plop!');
  24.         assocName = assocsToLoad.pop();
  25.         return eval('object.get' + assocName + '()').success(function(assocValue) {
  26.           object[assocName] = assocValue;
  27.           callback(null);
  28.         });
  29.       };
  30.       func = function(callback) {
  31.         console.log('yo!');
  32.         object = objects.pop();
  33.         async.forEach(object.assocsToLoad, func2);
  34.         return;
  35.         return chainer.add(emitter.run());
  36.       };
  37.       return new Sequelize.Utils.CustomEventEmitter(function(emitter) {
  38.         return async.forEach(objects, func, function() {
  39.           return emitter.emit('success', null);
  40.         });
  41.       }).run();
  42.     }


 
Ce code ne fonctionne évidemment pas mais il donne à peu près une idée de ce que j'essaie de faire (enfin j'espère)...


Message édité par real_mathos le 04-06-2012 à 18:36:59
mood
Publicité
Posté le 04-06-2012 à 18:34:10  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Problème d'asynchronicité avec Node.js et Async.js

 

Sujets relatifs
Problème d'accès dll VBA/Excelnetbeans - probléme
[Résolu] Problème positionnement d'une note avec "vertical-align: top"flash cs5.5 chrono probleme
[AC 2003] Probleme d'ouverture après modification de droitsprobléme récéption données java socket
C++ Builder répertoire problème !![VB] problème de timer
Probleme OpenGL 
Plus de sujets relatifs à : Problème d'asynchronicité avec Node.js et Async.js


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR