Je voudrais lancer des appels HTTP asynchrones sur mon nœud de serveur, j'ai vu le module de noeud async
et je suppose que le async.parallel
nous permet de faire cela.Appels HTTP asynchrones avec nodeJS
L'exemple documenté est assez clair, mais je ne sais pas comment gérer plusieurs appels http.
J'ai essayé l'exemple ci-dessous, mais il n'a même pas lancer les appels http:
var http = require('http');
var Calls = [];
Calls.push(function(callback) {
// First call
http.get('http://127.0.0.1:3002/first' callback);
});
Calls.push(function(callback) {
// Second call
http.get('http://127.0.0.1:3002/second' callback);
});
var async = require('async');
async.parallel(Calls, function(err, results) {
console.log('async callback: '+JSON.stringify(results));
res.render('view', results);
});
Si je lance i faire les requêtes http séparément, un résultat, mais, mais appeler le rappel async je reçois async callback: [null,null]
requête HTTP sont déjà asynchrone dans Node.js. – aggsol
oui mais j'ai besoin d'obtenir les deux réponses en même temps pour rendre une page web – Ludo
Vous ne les obtiendrez jamais en même temps car node.js est single threaded et chaque requête vient dans l'ordre. Vous devez juste attendre que le second rappel soit appelé. Le comptage de rappel simple aidera. – aggsol