I have a function callWithMagic
which takes a callback function as a parameter and calls it with one argument.
const callWithMagic = callback => {
const magic = getMagic();
callback(magic);
};
I also have a function processMagic
which takes two arguments: magic
and theAnswer
.
const processMagic = (magic, theAnswer) => {
someOtherMagic();
};
I want to pass the function processMagic
as an argument to callWithMagic
, but I also want to pass 42
as the second parameter (theAnswer
) to processMagic
. How can I do that?
callWithMagic(<what should I put here?>);
Just create a wrapper callback:
callWithMagic(function(magic) {
return processMagic(magic, 42);
});
Or using ECMAScript 6 arrow functions:
callWithMagic(magic => processMagic(magic, 42));
You could use an anonymus function
something like
session.sub('Hello', function(){marketEvents(your args);});
You can create a function which calls the marketEvent
function. No need to complicate things
session.sub('Hello', function(args, kwargs) {
marketEvent(args, kwargs, 'my custom data');
});
otherwise you can do this:
var mrktEvent = function(customArgs) {
return function(args, kwargs) {
marketEvent(args, kwargs, customArgs)
};
}
session.sub('Hello', mrktEvent("customEvent"));
You can bind argument object to callback function:
var varObject = {var1: "findButton", var2: true};
function cbFunc() {
console.log(this.var1+ ":" + this.var2);
}
//Example callback
datatable.ajax.reload(cbFunc.bind(varObject));
©2020 All rights reserved.