2017-02-22 43 views
0

Вот код запроса:запрос Javascript API: Проблема с запросом HTTP в цикле

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); 
    }); 
} 

Теперь результаты разные все время и не заказываются:

неопределенного Денвер Kirkland Нью-Йорк Чикаго

или

неопределенного Гонолулу Нью-Йорк Kirkland Денверу

или

неопределенного неопределенного New York Ci не определено Денвер

Почему это происходит? Есть ли способ сделать это синхронным и определить undefined? Кроме того, сначала всегда undefined!

Пожалуйста, дайте мне знать, если есть лучшая практика для достижения того, чего я хочу, независимо от того, как я пытаюсь.

+0

Почему вы считаете, что синхронность - это проблема с 'undefined'? – deceze

+0

@deceze, потому что он всегда неупорядочен –

+0

в любом случае, я бы обошел без заказа, но не могу понять, почему он имеет 'undefined' –

ответ

0

Удалите/в пути между ... погодой и apikey = ... так что она выглядит как:

path: '/data/2.5/weather?apikey=key&zip=' + zip 

Я попытался поразить конечную точку пути вы предоставляемая из моего браузера и получил 404s часто, но не всегда. Удалив это/дал мне действительный ответ каждый раз.

+0

Чудо! Большое спасибо! –

+1

Я тоже получал 404'd. Но после того, как вы отделились от моего компьютера на минуту и ​​возвращались, запросы работали без изменения кода @SamKirklandWA. Основываясь на [некоторых сообщениях на форуме] (https://openweathermap.desk.com/customer/portal/articles/search?q=rate) Я думаю, что свободный уровень сильно забит и вызывает проблемы время от времени. Просто хотел добавить в случае, если вы снова начнете видеть undefined. –

 Смежные вопросы

  • Нет связанных вопросов^_^