我有一個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