Kulin Kulin - 15 days ago 5
Javascript Question

Pass an extra argument to a callback function

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?>);

str str
Answer

Just create a wrapper callback:

callWithMagic(function(magic) {
  return processMagic(magic, 42);
});

Or using ECMAScript 6 arrow functions:

callWithMagic(magic => processMagic(magic, 42));