繁体   English   中英

在回调中传递参数

[英]Passing parameter in callback

我希望能够在回调函数中传递参数,但是要从原始调用函数传递参数,并具有以下规定,例如:

function foo() {
  var p = 5;
  getDataFromServer(callBackFunction);
}

function callBackFunction(data) {
  // I need value of 'p' here
  ...
}

function getDataFromServer(callback) {
  // gets data from server
  callback.call();
}

问题是我不想更改函数getDataFromServer() (即允许它接受另一个参数)。

这可能吗? 谢谢。

是的,您可以使用闭包来执行此操作。

但是,由于您的示例不清楚,因此很难给出代码。

我的猜测是您想要这样的东西:

function foo() {
  var p = 5;
  getDataFromServer(callBackFunction(p));
}

function callBackFunction(p) {
  var closureOverP = function(data) {... something with p ...};
  return closureOverP;
}

是的,这很高兴知道。

function foo() {
  var p = 5;
  getDataFromServer(function(){
     callBackFunction(p)
  });
}

那么一个简单的anon函数不会起作用吗?

function foo() 
{ 
   var p = 5;

   getDataFromServer( function() 
                      {
                          callBackFunction( p ); 
                      } );
}

绝对有可能,我会说功能编程语言的良好实践。 但是您可以这样调用函数:

function getDataFromServer(callback) {
  // gets data from server
  callback();
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM