Node.JS HTTP请求 - 分离回调函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Node.JS HTTP请求 - 分离回调函数相关的知识,希望对你有一定的参考价值。

就像现在一样,Node HTTP请求的回调必须是请求中的匿名函数,如此...

http.request(params, function(res){
    let data = "";

    res.on("data", function(chunk){
        data += chunk;
    });

    res.on("end", function() {
        console.log(data);
    });
}).end();

我想将回调分离到它自己声明的函数中,从相同或不同的文件中......就像这样......

function handleData(res) {
    let data = "";

    res.on("data", function(chunk){
        data += chunk;
    });

    res.on("end", function(){
        console.log(data);
    });
}

https.request(params, handleData(res));

是否有可能做到这一点?任何地方都没有明确的答案。我觉得我是第一个尝试这个的人。在此先感谢您的时间!

答案

它可以是这样的:

function handleResponse(res) {...yourcode...};
http.request(params, handleResponse).end();

或这个:

const handleResponse = function (res) {...yourcode...};
http.request(params, handleResponse).end();

要么

const handleResponse = res => {...yourcode...};
http.request(params, handleResponse).end();

要么

const handleResponse = res => {...yourcode...};
const request = http.request(params);
request.end();
request.on('response', handleResponse);

javascript和Node.js非常灵活。

另一答案

当你将.end()添加到他提供的代码行的末尾时,eclairs的注释就变成了解决方案。

恩。

http.request(params, handleData).end();

我留下了另一个问题,“为什么在通过请求传递该函数时我不必提供括号?”我认为应该看起来更像

handleData()

无论哪种方式,谢谢你们的收件人!

以上是关于Node.JS HTTP请求 - 分离回调函数的主要内容,如果未能解决你的问题,请参考以下文章

Node.js 使用jQuery取得Nodejs http服务端返回的JSON文字示例

Node.js 使用jQuery取得Nodejs http服务端返回的JSON数组示例

Node.js 使用angularjs取得Nodejs http服务端返回的JSON数组示例

将参数传递给回调 node.js

node.js 中的同步 HTTP 请求

从回调函数内部使用“纯”Node.js 进行重定向