콜백함수안에서 전역 변수 바꿀려고하는데 안돼서 돌아버리겠음
안됀다면 콜백에서 리턴값이라도 받아냈으면 좋겠는데 찾아도 안나와;
비동기식이여서 그런가 미치겠네;;;
var request = require('request');
var cheerio = require('cheerio');
var url= 'http://www.lottemart.com/category/categoryList.do?CategoryID=C001001100010001';
var headers= { 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.99 Safari/537.36' };
var a='a';
request({ url, headers }, function(err, res, html) {a="val"; }); //여기서 "val"이라는 값을 어떻게든 뽑아내고 싶은데 안돼
console.log(a);
node.js좀 아는 형 있어?
sort(rainyperiod)
2016-01-11 14:44
추천 0
댓글 18
다른 게시글
-
이 X발 프갤럼 시키들! 갓수 흙수저 코스프레 하면서 [2]∮프갤럼(t)..(modernmachine) | 16.01.11추천 0
-
노트북 2.4kg 면 많이 무겁냐? [5]dd(175.203) | 16.01.11추천 0
-
Html이랑 js 개발툴좀 [6]익명(39.7) | 16.01.11추천 0
-
(모지리일기)테트리스 만들기시작한지 어느덧 8일차! [6]테트리스씨..(211.241) | 16.01.11추천 0
-
영어도 좆도 못하는새-끼들이 토플비웃는거 죤나 한심하지않냐 [1]익명(222.233) | 16.01.11추천 1
-
블로그질 다시 시작하면서 iOS 동영상 강의 싹 올렸음 [12]McHello(undeadtrow) | 16.01.11추천 3
-
오늘 나 한가하다. [10]encoder(encoder) | 16.01.11추천 1
-
테트리스 티스핀 구현한 코드 보고싶은데 오픈소스로 된거 있숨? [1]ㅁㅁ(118.131) | 16.01.11추천 0
-
프갤에 참 싫어하는 인물이 있었는데 안오는거같다 [2]ㅁㅁ(118.131) | 16.01.11추천 0
-
캐나다 이민가고싶은데, 어떨까카다나드림(203.253) | 16.01.11추천 0
비동기라서 그런거 같으면 비동기방식인 node에서 동기식으로 사용할 수 있게 해주는 async모듈이라는게 있다. 거기에 async.series나 waterfall사용해봐라
고마워 진짜! 일단 해볼께
async.series랑 waterfal 둘다 해봤는데 안돼는거 봐서 비동기 문제는 아닌거 같음, 돌겠네 진짜
지금 코드플로우를 보면
콜백밖에 console.log를 쓴것같은데 그거때문아님?
request({ url, headers }, function(err, res, html) {a="val"; console.log(a) }); 이렇게 하던가
아니아니 그 콘솔에 찍어 낼려고 하는게 아니라 문자열을 다른 전역변수에 담고 싶어
문자열을 담는다는게 뭔소린진 모르겠는데 a라는 전역변수를 url request 콜백 함수에서 값을 변경하고싶다는것 아님?
밖에 보면 전역변수 a가 하나 더있지잖아? 거기에다가 담고 싶은데 안돼서 속터짐
지금 저 코드대로 실행시키면 당연히 결과로 a가 찍힐건데
마지막줄을 setTimeout(function() { console.log(a); }, 2000) 해보길
ㄷㄹㄷㄹ 정확함 ㅇㅇㅇ
fef 오오오오오오오ㅗㅇ 생큐!오오오ㅗㅇ
저건 당연한게, 콜백함수가 실행될떄까지 시간이 걸리는데 콜백함수가 실행되기 전에 먼저 그 밑에 console.log 라인이 실행되서 그런거임.
비동기라서 그런거 였나 보네; async모듈 내가 잘못 적용했나보다;;
세상에... 고마워! 이리 많은 사람들이 도와줄거라곤 생각도 못했는데 고마워 진짜
똑똑허네. 하나 배워 갑니다.
훈훈한 프갤