Javascript API 请求:循环中的 http 请求问题
Javascript API request: Issue with http request in a loop
请求代码如下:
for (var i = 0; i < zips.length; i++) {
process(zips[i].zip);
}
这处理数据:
var process = function(zip) {
var params = {
host: 'api.openweathermap.org',
path: '/data/2.5/weather/?apikey=key&zip=' + zip,
method: 'GET'
};
var req = http.request(params, callback).end();
}
这也处理数据,最后一步:
var callback = function(response) {
response.on('data', function (chunk) {
console.log(JSON.parse(chunk).name);
});
}
现在,结果总是不同的,而且没有排序:
undefined Denver Kirkland New York City Chicago
或
undefined Honolulu New York City Kirkland Denver
或
undefined undefined New York City undefined Denver
为什么会这样?有没有办法使它同步并定义 undefined
?另外,第一个总是 undefined
!
请告诉我是否有更好的做法来实现我想要的,无论我如何尝试。
删除 ...weather 和 ?apikey=... 之间路径中的 /,使其看起来像:
path: '/data/2.5/weather?apikey=key&zip=' + zip
我尝试使用您从我的浏览器提供的路径访问端点并经常收到 404,但并非总是如此。删除那个 / 每次都给我一个有效的回应。
请求代码如下:
for (var i = 0; i < zips.length; i++) {
process(zips[i].zip);
}
这处理数据:
var process = function(zip) {
var params = {
host: 'api.openweathermap.org',
path: '/data/2.5/weather/?apikey=key&zip=' + zip,
method: 'GET'
};
var req = http.request(params, callback).end();
}
这也处理数据,最后一步:
var callback = function(response) {
response.on('data', function (chunk) {
console.log(JSON.parse(chunk).name);
});
}
现在,结果总是不同的,而且没有排序:
undefined Denver Kirkland New York City Chicago
或
undefined Honolulu New York City Kirkland Denver
或
undefined undefined New York City undefined Denver
为什么会这样?有没有办法使它同步并定义 undefined
?另外,第一个总是 undefined
!
请告诉我是否有更好的做法来实现我想要的,无论我如何尝试。
删除 ...weather 和 ?apikey=... 之间路径中的 /,使其看起来像:
path: '/data/2.5/weather?apikey=key&zip=' + zip
我尝试使用您从我的浏览器提供的路径访问端点并经常收到 404,但并非总是如此。删除那个 / 每次都给我一个有效的回应。