我在 nodejs 应用程序中有多个 HTTP 请求,每个请求都返回一个句子的单词。回复将在不同的时间出现,所以我将它们保存在字典中,关键是原始句子的单词索引。问题是,当我访问请求对象时,我只得到最后一个。
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
}
});
}
基本上,当我访问object.index
对象时,返回的对象不是用于原始请求的对象,而是最后一个(出于某种原因)。我应该如何解决这个问题?