簡體   English   中英

如何將參數傳遞給回調

[英]How to pass params to a callback

我正在尋找實現以下目標的最佳做法:
我有3個功能: managerhttpGetonsuccess

  1. manager調用httpGet函數並成功傳遞onsuccess函數。

  2. httpGet發出請求並調用onsuccesss

  3. onsuccess使用需要manager參數

在不涉及httGet情況下,從manager傳遞到onsuccess的最佳方法是什么?
我當時在考慮將params對象傳遞給httpGet ,該對象又將傳遞給onsuccess但我真的不喜歡將參數傳遞給根本不使用它們的函數的想法。

您的意思是這樣的:

function manager()
{
   var managerParam =0;
   //the anonymous function below is in the scope of manager() so has
   //access to all of managers parameters
   httpGet(function() {
      //this function can use managerParam
      managerParam ++;
   });

  console.log(managerParam === 1); //true
}

function httpGet(onsuccess)
{
   onsuccess();
}

小提琴

使用閉包

data = { cool: true };
var yourCallbackFunction = function(httpData, notHttpData){};

var bakedCallback = (function() {
    var _data = data;
    return function(httpResp) {
        yourCallbackFunction(httpResp, _data);
    }
})();
httpGet.onSuccess(bakedCallback);

data是您想要傳遞給函數的額外數據。

在您的回調中: httpData是從請求接收的數據。 NOThttpData是多余的數據。

  1. manager onsuccess定義為局部函數,它可以使用其參數和局部變量。
  2. 傳遞onsuccesshttpGet

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM