我正在执行 http 或 https get 请求(取决于 url),并且我想将相同的回调函数传递给 http 或 https get 请求。
我的问题是我还想将另一个参数传递给回调函数。
我该怎么做?
例如,如何将 myParameter 传递给回调函数?
var myParameter = 1
if(url.indexOf('https') === 0 ) {
https.get(url, callbackFunc);
else{
http.get(url, callbackFunc);
}
function callbackFunc(res, myParameter){}
最佳答案
创建一个返回callbackFunction
的函数,将自定义参数存储在闭包中
function createCallback(myParam) {
return function(res) {
console.log(res, myParam);
}
}
var myParameter = 1
if(url.indexOf('https') === 0 ) {
https.get(url, createCallback(myParameter));
else{
http.get(url, createCallback(myParameter2));
}
您也可以使用额外的匿名函数
var myParameter = 1
if(url.indexOf('https') === 0 ) {
https.get(url, function(res){
myCallback(res, param1);
});
else{
http.get(url, function(res){
myCallback(res, param2);
});
}
或者您可以使用Function.bind()
根据Peter Lyons的建议。第二个和后续参数将在调用时间参数之前传递给回调。
关于javascript - 在 Node.JS 中向 http.get 传递参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31589288/