可能是一个非常基本的问题,但我没有在文档或Google中找到答案......
我正在做nodeschool's“learnyounode”模块,并且对于http客户端问题的介绍找到了一个使用console.log
而没有参数的正式答案(实际上是另一个函数中的args,但我理解):
var http = require('http')
http.get(process.argv[2], function (response) {
response.setEncoding('utf8')
response.on('data', console.log)
response.on('error', console.error)
})
这是如何工作的?它看起来干净而且显而易见,但我不确定如果不能更好地了解正在发生的事情,我可以自信地使用这种风格。
顺便说一下(看看我不理解的东西),这是我自己非常相似但更长的答案:
var http = require('http');
http.get(process.argv[2], function callback(response) {
response.setEncoding('utf8');
response.on('data', function(data) {
console.log(data);
});
response.on('error', function(error) {
console.error(error);
});
});
答案 0 :(得分:2)
看看你的代码非常简单
response.on('error', function(error) {
console.error(error);
});
你在那里做了什么,你写了一个回调,它从错误事件中传递了对象,你可以将其用作错误。
现在让我们看看其他代码
response.on('error', console.error)
同样的情况是,事件将它的对象传递给回调函数,此函数console.error
在这里需要一个或多个对象。
类似
let myLog = function(dataToLog) {
console.log(dataToLog);
}
response.on('error', myLog);
也会奏效,希望这会让它更清晰。