2016-10-18 12 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

iは天候モジュールを呼び出すと私はトリノでコマンドラインに印刷するために(それは天候モジュールの 引数である)天候 をコールバック関数を取得します。しかし、どのように可能ですか? JavaScriptで

機能first class object はあなたが変数に関数を保存し、別の関数に渡すことができることを意味しています。このパターンはNode.jsとJavasriptで一般的によく見られますが、これはContinuation passing style(CPS)

と呼ばれています。

+0

クリア!ありがとうございました:) – DevWeb

+0

あなたの質問を編集して読みやすくするために;-) –

関連する問題