2017-03-10 3 views
3

JS 및 Node.js를 시작하고 있습니다. Node.js와 requestcheerio과 같은 모듈을 사용하여 첫 번째 프로젝트로 간단한 스크래퍼를 만들려고합니다. 배열에 포함 된 각 도메인에 대한 각 HTTP 요청 사이에 5 초 지연을 추가하고 싶습니다. 어떻게하는지 설명해 주시겠습니까?http 요청에 대한 for 루프 지연

var request = require('request'); 

var arr = [ "http://allrecipes.com/", "http://www.gossip.fr/" ]; 

for(var i=0; i < arr.length; i++) { 
    request(arr[i], function (error, response, body){ 
     console.log('error:', error); 
     console.log('statusCode:', response && response.statusCode); 
     console.log('body:', body); 
    }); 
} 

답변

1

사용 setTimeout :

var request = require('request'); 
var arr = ["http://allrecipes.com/", "http://www.gossip.fr/" ]; 

for (var i = 0; i < arr.length; i++) { 
    setTimeout(request, 5000 * i, arr[i], function (error, response, body){ 
     console.log('error:', error); 
     console.log('statusCode:', response && response.statusCode); 
     console.log('body:', body); 
    }); 
} 

당신은 기본적으로 루프를 확인하고 request 방법은 5000ms입니다 5000 * i에 해당하는 지연으로 호출 할 필요가 있다고 여기

내 코드입니다 i을 곱해서 루프 반복마다 5 초씩 증가합니다. 그런 다음 함수에 전달할 모든 인수를 제공합니다.

+0

감사합니다. Andrey. 알았다. – ale