0
我想了解Node.js中的事件循環,以及事件編程如何工作。鑑於我的模塊導出的函數返回東西data
事件的回調:不是異步函數和Node.js的事件循環,這是如何工作的?
var http = require('http');
module.exports.send = function send(message) {
http.request({ hostname: 'google.com' }, function (res) {
res.setEncoding('utf8');
res.on('data', function (chunk) {
return chunk;
}
});
};
這可怎麼工作的?
如果正確地明白,http.request
爲異步操作,這意味着:
- 被執行以
http.request
的呼叫; - 程序控制返回到Node.js事件循環立即;
- 當請求最終返回某個事件(發出
data
事件)時,可能在幾分鐘後,send
函數返回數據。之前沒有。
因此result
應undefined
,但實際上並非如此:
var send = require('mymodule').send;
var result = send({});
console.log(result);
謝謝你,我正在尋找的解釋。很難理解事件編程的邏輯! – gremo 2013-02-16 22:05:50