J'ai une fonction callWithMagic
qui prend une fonction de rappel en tant que paramètre et l'appelle avec un argument.
const callWithMagic = callback => {
const magic = getMagic();
callback(magic);
};
J'ai aussi une fonction processMagic
qui prend deux arguments: magic
et theAnswer
.
const processMagic = (magic, theAnswer) => {
someOtherMagic();
};
Je veux passer la fonction processMagic
comme argument à callWithMagic
, mais je veux aussi passer 42
comme second paramètre (theAnswer
) à processMagic
. Comment puis je faire ça?
callWithMagic(<what should I put here?>);
Il suffit de créer un rappel de wrapper:
callWithMagic(function(magic) {
return processMagic(magic, 42);
});
Ou en utilisant ECMAScript 6 fonctions de flèche :
callWithMagic(magic => processMagic(magic, 42));
Vous pouvez utiliser une fonction anonyme
quelque chose comme
session.sub('Hello', function(){marketEvents(your args);});
Vous pouvez lier un objet argument à une fonction de rappel:
var varObject = {var1: "findButton", var2: true};
function cbFunc() {
console.log(this.var1+ ":" + this.var2);
}
//Example callback
datatable.ajax.reload(cbFunc.bind(varObject));
Vous pouvez créer une fonction qui appelle la fonction marketEvent
. Pas besoin de compliquer les choses
session.sub('Hello', function(args, kwargs) {
marketEvent(args, kwargs, 'my custom data');
});
sinon vous pouvez faire ceci:
var mrktEvent = function(customArgs) {
return function(args, kwargs) {
marketEvent(args, kwargs, customArgs)
};
}
session.sub('Hello', mrktEvent("customEvent"));