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,但并非总是如此。删除那个 / 每次都给我一个有效的回应。