2016-10-18 3 views
0

내가 짧은 예를 만들고 난 dubt있다 : 콜백 함수 - NodeJS

var request = require("request"); 
var url = "http://api.openweathermap.org/data/2.5/weather?q=turin&APPID=xxxxxxxxxxxxxxxxxxxxxx"; 
module.exports = function (callback) { 

    request(
    { 
     url: url, 
     json: true 
    }, function (error, response, body) { 
     if (error) { 
      callback("Unable to fetch weather"); // callback function 
     } else { 
      callback("It is " + body.main.temp + " in " + body.name); 
     } 
    }); 

    console.log("After request"); 
}; 

외부 파일

, 난이 모듈 필요이 경우

var weather = require("./weather.js"); 

weather(function (currentWeather) { 
    console.log(currentWeather); 
}); 

을 난 weather 전화 모듈과 나는 토리노의 날씨 명령 행에 인쇄하기 위해 callback 함수 (날씨 모듈의 인수)를 얻는다. 하지만 어떻게 작동합니까?

+3

당신이 묻는 것이 명확하지 않습니다. 'weather.js'의 내보내기는 함수입니다. 콜백 함수 매개 변수를 사용하여 해당 함수를 호출합니다. –

+0

"하지만 어떻게 할 수 있니?"그의 진정한 질문은 "그것이 작동하는 방법"이라고 생각합니다. ... –

답변

1

나는 날씨 모듈을 호출하고 난 토리노에서 명령 줄에 인쇄를 위해 (이 날씨 모듈의 인수입니다) 날씨 을 콜백 함수를 얻을. 그러나 어떻게 가능합니까? 자바 스크립트에서

기능은 first class object 당신이 변수에 함수를 저장하고 다른 함수에 전달할 수 있다는 것을 의미합니다. 이 패턴은 일반적으로 Node.js와 Javasript에서 매우 일반적입니다. Continuation passing style (CPS)

희망이 도움이 될 것입니다.

+0

지우기! 고맙습니다. :) – DevWeb

+0

질문을 수정하고 읽기 쉽게 만들어야합니다 ;-) –