1
나는이 특정 문제에 어려움을 겪고있어
운동 9 - 저글링 비동기 당신은 각각 제공 한 전체 내용을 수집해야합니다
URL을 찾아서 콘솔에 출력하십시오 (stdout). 길이를 인쇄 할 필요는 없으며 데이터 만 String으로 인쇄 할 수 있습니다. URL 당 한 줄. 캐치 (catch)는 URL이 명령 줄 인수로 제공되는 것과 동일한 순서로 인쇄해야한다는 것입니다. -이 검색되는 URL의 순서로 출력됩니다 내가 잘못이다 알아낼 수 없습니다
var http = require('http'); var bl = require('bl') var results = []; var count = 0 function getURLs() { var urls = [] for(var i = 2; i < process.argv.length; i++){ urls.push(process.argv[i]); } return urls } function getHTTP(url){ http.get(url, function(response){ response.pipe(bl(function(err,data){ if(err){return console.error(err)} results[count] = data.toString(); count ++; if (count === process.argv.length - 2){ printAll() } })) }) } function printAll(){ for(var i = 0 ; i < results.length; i++){ console.log(results[i]) } } function start(){ retrivedURL = getURLs() for(var i = 0; i < retrivedURL.length; i++){ getHTTP(retrivedURL[i]) } } start()
:
여기 내 코드입니다.
루프 및 비동기 함수를 사용할 수없고 순서를 유지해야하므로 비동기 호출을 순서대로 정렬해야합니다. 연속 전달 스타일의 한 가지 방법은 루프 대신 재귀를 사용하는 것입니다. 또 다른 옵션은 약속을 사용하여 시퀀스하는 것입니다. – elclanrs