我正在处理nodeschool.io的learnyounode http client exercise。节点流:未通过回调函数a值
这是任务:
编写执行HTTP GET请求给你提供给 URL作为第一个命令行参数的程序。将每个“数据”事件的字符串内容 从响应写入控制台 (stdout)上的新行。
我的解决办法是:
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'。 – 2014-10-07 16:43:33