2017-11-10 1 views
0

요청 npm 모듈을 사용 중이며 주류 요청 내에서 4 요청을하고 있습니다. 결론을 먼저 말하면 네 건 중 두 건만 무작위로 성공합니다.요청 npm 모듈 - 요청 내부 요청

다음은 아래 코드입니다.

router.get('/', function(req, res){ 
    //TODO 
    request(url, function(error, response, body) { 
     if(err) throw error; 
     //TODO- 
     request(comnURL, function(errp,resp, body){ 
      if(errp) throw errp; 
      comnBODY = body; 
      console.log(body); 
      console.log("\n\n"); 
     }); 
     request(intrURL, function(errp,resp, body){ 
      if(errp) throw errp; 
      intrBODY = body; 
      console.log(body); 
      console.log("\n\n"); 
     }); 
     request(reptURL, function(errp,resp, body){ 
      if(errp) throw errp; 
      reptBODY = body; 
      console.log(body); 
      console.log("\n\n"); 
     }); 
     request(addiURL, function(errp,resp, body){ 
      if(errp) throw errp; 
      addiBODY = body; 
      console.log(body); 
      console.log("\n\n"); 
     }); 
     //TODO- 
    }); 
}); 

응답의 모든 요청은 무작위로 다르고 4 개의 하위 요청 중 2 개를 선택합니다. 이것의 이유와 그것을 피하는 방법이 무엇일 수 있습니다.

답변

1

코드에 구문 오류가 있지만 잘 작동합니다. 이것은 비동기 문제 일 수 있습니다. 당신이 순서대로 실행이 4 요청을하려는 경우, 당신은이 방법으로 삽입해야합니다 : 그것은 당신이 request-promise module를 사용하기위한 또 다른 방법은, 약속의 방법을 사용

'use strict'; 

const request = require('request') 

request('https://jsonplaceholder.typicode.com/posts/5', function(error, response, body) { 
    if(error) throw error; 
    //TODO- 
    request('https://jsonplaceholder.typicode.com/posts/1', function(errp,resp, body){ 
     if(errp) throw errp; 
     let comnBODY = body; 
     console.log(body); 
     console.log("1\n\n"); 
     request('https://jsonplaceholder.typicode.com/posts/2', function(errp,resp, body){ 
      if(errp) throw errp; 
      let intrBODY = body; 
      console.log(body); 
      console.log("2\n\n"); 
      request('https://jsonplaceholder.typicode.com/posts/3', function(errp,resp, body){ 
       if(errp) throw errp; 
       let reptBODY = body;   
       console.log(body); 
       console.log("3\n\n"); 
       request('https://jsonplaceholder.typicode.com/posts/4', function(errp,resp, body){ 
        if(errp) throw errp; 
        let addiBODY = body; 
        console.log(body); 
        console.log("4\n\n"); 
       }); 
      }); 
     }); 
    }); 
}); 

.