gpt4 book ai didi

javascript - 将额外参数传递给 NodeJs Http 回调方法

转载 作者:搜寻专家 更新时间:2023-11-01 00:31:34 25 4
gpt4 key购买 nike

<分区>

我正在用 NodeJs 编写一个 API 包装器,并且正在尝试干净地处理来自 http.get() 的响应。问题的根源在于,我讨厌所有教程中匿名内联定义回调方法的不干净编码风格。

// Bad. Can get ugly if the handle function has multiple lines or nested callbacks
http.get("www.example.com", function(response){/* handle response */});

// Better. Follows clean-code guidelines. Code is more reusable. Etc
var handleResponse = function(response){
// handle response
}
http.get("www.example.com", handleResponse);

虽然我更喜欢后者,但我似乎无法将额外的参数传递给 handleResponse,特别是我希望 handleResponse 调用的回调。

我目前所拥有的有效:

module.exports = function() {
return {
apiGet: function(url, callback) {
http.get(url, function(response) {
var result = handleResponse(response);
callback(null, result);
});
}
}
}

我想要的(但不起作用)

module.exports = function() {
var handleResponse = function(response) {
var result = handleResponse(response);
callback(null, result);
};

return {
apiGet: function(url, callback) {
http.get(url, handleResponse);
}
}
}

此代码的问题在于回调函数未在方法 handleResponse() 中定义。我似乎无法解决这个问题。

我尝试过的事情。

// hoping extra parameters get passed to function. Nope.
return {
http.get(url, handleResponse, callback);
}

// Trying out a suggestion from a random blog I found while googling for an answer. Nope.
return {
http.get(url, handleResponse.bind({callback: callback});
}

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com