2016-10-10 2 views
0

안녕하세요 노드 js 루프 요청을 HTTP 요청을 1728 및 1727 친절하게도 내가이 문제를 해결하기 위해 노력하고 있습니다. .노드 JS 여러 HTTP 요청 누락 된 응답

for (let i = 0 ; i < playerLength ; i++) { 
for (let j = startYear ; j < currentYear ; j++) { 

    var playerSeasonData = {}; 
    playerSeasonData.url = me.config.sport.url + league + '/v2/JSON/PlayerSeasonStatsByPlayer/'+ j +'/' + playerData[i].playerID; 
    playerSeasonData.method = 'GET'; 
    playerSeasonData.headers = {}; 
    playerSeasonData.headers = {'Ocp-Apim-Subscription-Key':'**********************'}; 

    me.request(playerSeasonData ,function( error, response, data ){ 
     count ++; 
    )}; 
} 

은}

+0

"응답이 누락되었습니다"라는 것을 어떻게 추측합니까? 항상 같은 수의 요청입니까? (예를 들어,'playerLength'의 값은 무엇입니까?) 지정되지 않은 변수를 사용하지 않고, 작고 자급 한 것으로 예를 최소화 시키십시오. 응답이 비동기 적이기 때문에 루프의 어딘가에서'count'를 읽으면 새로운 응답이 도착하면 시간이 지남에 따라 카운터가 바뀌므로 값이 틀릴 것입니다. –

+0

루프 내부의 요청과 플레이어 길이를 계산합니다 557이며 크기를 최소화하려고하지만 여전히 동일한 문제에 직면하고 있습니다. – AhmedSaboorRiksof

+0

어떤 해결책을 찾은 경우 도움을 청합니다. – AhmedSaboorRiksof

답변

0

당신이 겪고있는 문제는 모든 HTTP 요청이 완료되기 전에 함수가 반환하는 것입니다.

me.request을 통해 bluebird으로 약속 한 다음 Promise.all을 반환하십시오. 다음은 예입니다. http://bluebirdjs.com/docs/api/promise.all.html

+0

응답을 보내 주시면 감사하겠습니다. – AhmedSaboorRiksof

+0

bluebird를 통해 me.request를 약속했습니다. 그런 다음 1698 또는 1643에 붙어서 작동하지 않는다고 약속하십시오. – AhmedSaboorRiksof

+0

코드를 다시 게시 할 수 있습니까? –

0

< = < 대신 간단한 해결책을 시도해 보셨습니까? 표시하는 코드에서 말하기 힘들지만 1728 & 1727의 차이 일 수 있습니다.

+0

루프를하기 전에 count 변수를 초기화 할 사람이 필요하지 않습니다. – AhmedSaboorRiksof