【发布时间】:2014-04-24 00:39:45
【问题描述】:
我有一个 JavaScript (Node) 函数来抓取网页的内容并通过回调处理它:
'using strict';
var http = require('http');
function download(url, callback) {
http.get(url, function(res) {
var content = '';
res.on('data', function (chunk) {
content += chunk;
});
res.on('end', function() {
callback(content);
});
}).on('error', function() {
callback(null);
});
}
我不明白为什么我不能简单地在“结束”时返回结果。很明显,当 'end' 事件发出时, 'content' 变量包含一个带有网页内容的字符串,否则无法提交给回调函数,所以我为什么不能这样返回:
function download2(url) {
http.get(url, function(res) {
var content = '';
res.on('data', function(chunk) {
content += chunk;
});
res.on('end', function() {
return content;
});
}).on('error', function() {
return null;
});
}
download2 总是返回未定义的。为什么?
【问题讨论】:
标签: javascript node.js callback