簡體   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