J'ai plusieurs requêtes HTTP dans une application nodejs qui renvoie chacune un mot d'une phrase. Les réponses viendront à des moments différents, donc je les enregistre dans un dictionnaire, la clé étant l'index des mots de la phrase d'origine. Le problème est, quand j'accède à l'objet de demande, je reçois seulement le dernier.Obtention d'un objet de requête d'origine lors de plusieurs appels asynchrones dans nodejs-request
var completed_requests = 0;
sentence = req.query.sentence;
sentence = "sentence to be translated"
responses=[];
words = sentence.split(" ");
for(j=0;j<words.length;j++){
var word = words[j];
var data={
word:word
};
var options = {
url: 'example.com',
form:data,
index:j
};
request.post(options, function(err,httpResponse,body){
options = options;
if(!err){
responses.push({options.index: body});
completed_requests+=1;
if(completed_requests==words.length){
var a="";
for(var k=0;k<words.length;k++){
a+=responses[k]+" ";
}
res.render('pages/index', { something: a });
}
}
else{
//err
}
});
}
En fait, quand j'accéder à l'objet object.index
, l'objet retourné n'est pas celui utilisé pour la demande initiale, mais le dernier (pour une raison quelconque). Comment devrais-je résoudre cela?
Où définir/définissez-vous l'objet .indice? Pourriez-vous poster ce code? – saintedlama
Le options.index est défini ci-dessus comme ceci: 'var options = { url: 'example.com', forme: données, index: j };' – chintogtokh