如何将变量传递给嵌套的回调函数

时间:2014-08-30 10:16:47

标签: javascript node.js

我正在使用request npm来获取http页面。我有类似的东西

function callbackFunction1() {
  var p = 'foo';

  request(url, callbackFunction2);
}

function callbackFunction2(err, response, body){

}

如何将变量p作为callbackFunction2的参数传递?

2 个答案:

答案 0 :(得分:5)

我认为你需要提供所有3个参数。

您可以将匿名函数作为第二个参数传递,例如bellow

request(url, function(err, response, body){
    callbackFunction2(err,response, body, p);
});

答案 1 :(得分:0)

@facebook的comment是他们的目标。

使用bind

request(url, callbackFunction2.bind(p));
...
console.log(this); // p

阅读@facebook的链接,了解如何在不弄乱this的情况下执行此操作,如果它在您的用例中很重要。