À l'aide de nodejs async et demande module
Je suis en train d'utiliser async et demande de module mais je ne comprends pas comment les rappels se passait. Mon code est
var fetch = function(file, cb) {
return request(file, cb);
};
async.map(['file1', 'file2', 'file3'], fetch, function(err, resp, body) {
//is this function passed as an argument to _fetch_
//or is it excecuted as a callback at the end of all the request?
//if so how do i pass a callback to the _fetch_ function
if(!err) console.log(body);
});
Je suis en train de chercher de 3 fichiers dans l'ordre et concaténer les résultats. Ma tête est coincée dans les rappels que j'ai essayé et les différentes combinaisons que je pouvais penser. Google n'a pas beaucoup d'aide.
OriginalL'auteur andrei | 2012-06-16
Vous devez vous connecter pour publier un commentaire.
Requête est asynchrone fonction, il ne renvoie pas à quelque chose, quand son travail est terminé, il appelle de nouveau. De demandez des exemples, vous devriez faire quelque chose comme:
Votre lien vers les exemples ne montrent pas de rappels. Tout ce qu'ils font est de vous connecter à la console.
OriginalL'auteur Mustafa
Dans votre exemple, le
fetch
fonction sera appelée trois fois, une fois pour chacun des noms de fichier dans le tableau passé comme premier paramètre deasync.map
. Un deuxième paramètre de rappel sera également passé enfetch
, mais ce rappel est fourni par l'async cadre et vous devez l'appeler quand votrefetch
fonction a terminé ses travaux, la fourniture de ses résultats que de rappel comme second paramètre. Le rappel que vous fournissez en tant que troisième paramètre àasync.map
sera appelée lorsque tous les trois de lafetch
appels ont appelle la fonction de rappel qui leur est fourni.Voir https://github.com/caolan/async#map
Donc, pour répondre à votre question spécifique dans le code, la fonction de rappel que vous fournissez est exécuté comme un rappel, puis à la fin de toutes les demandes. Si vous avez besoin de passer un rappel à
fetch
vous feriez quelque chose comme ceci:OriginalL'auteur JohnnyHK