2014-11-04 4 views
-2

전달 된 값이 필요합니다. 이것은 내 코드입니다 :nodejs에서 콜백 함수의 값을 가져올 수 없습니다.

function parseArticle(i, bookmark_id, bookmark_url, callback) { 
     console.log("Value of i is " + i); 
     console.log("Value of Bookmark_id is coming " + bookmark_id); 
     diffbot.article({uri: bookmark_url}, function(err, response) { 
      console.log("Value of Bookmark_id "+bookmark_id); 

diffbot.article에 내 문제는 bookmark_id입니다. 정의되지 않았습니다. 하지만 parseArticle 아래에 괜찮 았어.

아이디어가 있으십니까?

덕분에

+0

인수는 어디에 있습니까? :/ –

+0

parseArticle (i, bookmark_id, bookmark_url, callbackForParseArticle); 나는이 함수를 호출하고있다. – kamalpreet

+0

그것들은 인자이다. 실제 인자 나 함수에 넘겨 준 값은 어디에 있는가? –

답변

0

당신은 Node.js를 비동기 요청의 모든 생각과 콜백이 작동하는 방법을 이해할 필요가있다.

간단히 말해서 diffbot.article의 콜백 내부에있는 bookmark_id 인수에 액세스하려고합니다. 그러나 parseArticle 함수가 이미 실행되어 diffbot.article의 콜백 함수가 이 아닌 동기식으로 완료 될 때까지 대기하지 않습니다. 따라서 parseArticle에 전달 된 모든 인수는 내부에서 사용되는 함수의 콜백 범위를 벗어나므로 어휘 범위 문제가 발생합니다.

비동기식 요청과 클로저 아이디어에 대해서는이 글에서 아주 잘 쓰여진 blog post을 읽어 보시기 바랍니다. 그것이 당신을 올바른 방향으로 시작하게되기를 바랍니다.

관련 문제