我剛剛開始使用Node.js.我有一個關於http.request的基本問題。我想寫一個帶有幾個函數的JavaScript模塊,它可以從一些服務器返回一些數據。使http.request返回undefined
下面的代碼:
var mod = (function() {
var my = {};
var options = {
hostname: 'example.com'
};
var foo = '';
my.getBar = function() {
var req = http.request(options, function(res) {
res.setEncoding('utf8');
res.on('data', function (chunk) {
// example.com returns JSON
// TODO need to be able to get foo from outside this module
foo = JSON.parse(chunk).bar;
});
});
req.end();
}
return my;
}());
要獲得bar
我這樣做:
console.log(mod.getBar());
,但我得到undefined
。我認爲異步事件正在發生..請求發生,並且在發生時,我嘗試打印尚未收到的結果?我認爲我需要讓它同步或什麼?
非常感謝。
完美,我已經學到了一些東西。謝謝。 – ale 2013-05-07 09:33:53
A-ha對我有影響(關於一個明顯的事情,我已經使用mechianically但沒有想到):獲取異步的東西,你實際上將一個函數作爲參數傳遞給你的啓動函數。因此,所有這些cb(null,xxx)nulls和東西:) – Zlatko 2013-05-07 09:43:54