【发布时间】:2014-10-07 16:40:35
【问题描述】:
我正在研究 nodeschool.io 的 learnyounode http client exercise。
这是任务:
编写一个程序,对提供的 URL 执行 HTTP GET 请求 你作为第一个命令行参数。写入字符串内容 从响应到控制台上的新行的每个“数据”事件 (标准输出)。
我的解决方案是:
var http = require("http");
var url = process.argv[2];
http.get(url, function(res){
res.setEncoding('utf8');
res.on('data', function(data){
console.log(data);
})
});
这很有效,但我很好奇建议的解决方案为什么有效。 console.log 和 console.error 如何使用 data 或 error 对象。它们似乎没有传递给回调函数。
var http = require('http')
http.get(process.argv[2], function (response) {
response.setEncoding('utf8')
response.on('data', console.log)
response.on('error', console.error)
})
【问题讨论】:
-
在这两种情况下,您都传递了一个接收和打印文本的函数。在第一个中,它是一个匿名函数,调用
console.log,在第二个中,它是console.log。两种方式,data最终都会被传递给console.log。
标签: javascript node.js callback