我有一个Node js程序,但是我很努力去理解如何在一个变量中加入响应细节。将两个不同url请求的结果加在一起
让我解释一下我的意思是:
我有不同的URL,我在同一时间(它需要在同一时间)做所有他们的request.GET中。
我得到的反应是不同的,这取决于URL结束 - 的反应可以是一个
Dog-List
或Cat-List
然后我需要从
Dog-list
获取信息,所以我有一个if语句说如果回复中包含Dog-List
,则打印出“在狗列表中”并运行所需的代码。如果是
Cat-List
,则打印出'in cat list'并运行所需的代码。最后,获取狗和猫的信息,并将它们结合在一起形成一个变量。
这是代码:
var urls = ['http://111.1:1111/cats', 'http://111.1:1111/dogs'];
function test() {
async.map(urls, function(url, cb) {
request.get(url, function(error, response, body) {
if (error) {
console.log(error);
} else {
parseString(body, function(result) {
var age1 = 0;
var age2 = 0;
if (result.Return['Cat-List']) {
console.log('in cat list');
age1 = result.Return['Cat-List'].age;
} else if (result.Return['Dog-List']) {
console.log('in dog list');
age2 = result.Return['Dog-List'].age;
}
data = age1 + age2;
console.log(data);
});
}
});
});
}
然而,正如你所期望的,因为我使用的是“如果”让每个URL响应后声明,我只会去任何进入狗或猫的名单,因此我的结果永远不能合并。
这是当我运行程序我得到打印的内容:
in cat list
2
in dog list
3
这是因为猫的年龄是2,和狗的年龄是5
这就是我想要的cmd看起来像:
in cat list
in dog list
5
有没有不使用if语句做到这一点的不同方式?或者只是做一些其他的事情一起加入结果?我只是努力达到这个结果。任何帮助,将不胜感激!
查看我的更新回答。 – rsp