Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
286 views
in Technique[技术] by (71.8m points)

javascript - 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?>);
Question&Answers:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Just create a function(magic) {} as a wrapper callback:

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

Or using ECMAScript 6: arrow functions:

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

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...