我试图了解专门用于https.get()方法的node.js文档。 https://nodejs.org/dist/latest-v8.x/docs/api/https.html#https_https_get_options_callback
我不清楚回调是什么。文档中的示例表明,回调可以将res(响应)对象作为其参数,但是我不确定这是否是它可以采用的唯一参数,或更重要的是,在哪里可以找到res对象的定义,以便我知道我可以在该对象上访问的属性和方法。
有没有一种直接的方法可以识别这一点?
我已经阅读了该线程:Trying to understand nodejs documentation. How to discover callback parameters,答案似乎表明,如果有一个可以接受回调的非错误参数,则将被记录在案,但我认为答案已经过时了。
答案 0 :(得分:0)
我在许多Node / NPM软件包中遇到了相同的问题。文档有时无法很好地描述参数。
所以,欢迎您在2018年使用JavaScript!老实说,它变得更好了。
我的首选方法是尝试这些方法并自己转储信息。
尝试在回调中使用console.dir(res)
:
https.get('https://encrypted.google.com/', (res) => {
console.dir(res);
});
或者,您可以在回调中设置断点并自己检查。然后,您可以探查arguments
object *,以查看还有什么(如果有的话)作为参数传递,或者进行另一个控制台转储:
https.get('https://encrypted.google.com/', function (res) {
console.dir("args:", arguments);
console.dir("res:", res);
});
编辑:等等,显然arguments
变量对箭头函数不可用可用,已修复了第二个示例。
*来自MDN:
arguments对象不是Array。它类似于数组,但是 除了长度,没有任何Array属性。
答案 1 :(得分:0)
通过链接https://nodejs.org/dist/latest-v8.x/docs/api/https.html#https_https_get_options_callback,您可以看到它的工作方式类似于http版本:
类似于http.get(),但适用于HTTPS。
点击http.get()
。
在该页面(https://nodejs.org/dist/latest-v8.x/docs/api/http.html#http_http_get_options_callback)上,我们可以看到以下内容:
使用单个参数调用回调,该参数是http.IncomingMessage的实例
点击http.IncomingMessage
,链接到此页面:
https://nodejs.org/dist/latest-v8.x/docs/api/http.html#http_class_http_incomingmessage
我同意Node文档对于回调一般不是很清楚,这很遗憾。您仍然可以使用具有良好智能感知能力的IDE(和JSDoc来识别函数参数的类型),例如VSCode。
或者您可以使用调试器,始终可以:)
编辑:如果要查看发送给函数的所有参数,可以使用如下扩展语法:
function foo(...params) {
// Here params is an array containing all the parameters that were sent to the function
}
答案 2 :(得分:0)
如果您想要绝对的事实,可以查看implementation。虽然那是相当耗时的。
如果您发现文档有误,或者在这种情况下可以通过在https.get()
中添加有关回调参数的语句来进行改进,请提出一个问题,或者更好的是,提出拉取请求。这是需要进行更改的地方:
https://github.com/nodejs/node/blob/67790962daccb5ff19c977119d7231cbe175c206/doc/api/https.md