Javascript 如何将变量传递给嵌套回调函数
我正在使用Javascript 如何将变量传递给嵌套回调函数,javascript,node.js,Javascript,Node.js,我正在使用requestnpm获取http页面。我有类似的东西 function callbackFunction1() { var p = 'foo'; request(url, callbackFunction2); } function callbackFunction2(err, response, body){ } 如何将变量p作为callbackFunction2的参数传递 我认为您需要给出所有3个参数 您可以将匿名函数作为第二个参数传递,如bellow reques
request
npm获取http页面。我有类似的东西
function callbackFunction1() {
var p = 'foo';
request(url, callbackFunction2);
}
function callbackFunction2(err, response, body){
}
如何将变量
p
作为callbackFunction2的参数传递 我认为您需要给出所有3个参数
您可以将匿名函数作为第二个参数传递,如bellow
request(url, function(err, response, body){
callbackFunction2(err,response, body, p);
});
@facebook是他们的出路
使用
阅读@facebook的链接,看看如何在不弄乱
这个的情况下进行操作,如果它在您的用例中很重要。您可以将p变量放在第一个callbackfunction 1之外,然后将其作为普通变量放在callbackfunction 2中。这将解决您的问题:在这种情况下p
是什么?您是希望完全替换body
参数,还是希望将其作为额外参数传递?我希望传递额外参数我认为您还需要在匿名回调函数中将err和response作为参数CallbackFunction 2的参数是三个,那么我应该传递四个parameters@Mazzy 我有点困惑,为什么要传递4个参数,当函数只需要3个参数时,您将如何使用它?请求回调函数需要三个参数@MatthiasPosch是正确的,所有三个参数后跟第四个局部参数都需要传递给原始回调。除非其他对request
的回调重用了回调,否则不内联定义回调是没有意义的。下面是一个JSFIDLE演示:,打开控制台查看输出。
request(url, callbackFunction2.bind(p));
...
console.log(this); // p