将一个额外的parameter passing给一个callback函数

我有一个函数callWithMagic ,它将一个callback函数作为参数,并用一个参数来调用它。

 const callWithMagic = callback => { const magic = getMagic(); callback(magic); }; 

我也有一个函数processMagic ,它有两个参数: magictheAnswer

 const processMagic = (magic, theAnswer) => { someOtherMagic(); }; 

我想将processMagic作为parameter passing给callWithMagic ,但是我也想把42作为第二个参数( theAnswer )传给processMagic 。 我怎样才能做到这一点?

 callWithMagic(<what should I put here?>); 

只需创build一个包装callback:

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

或使用ECMAScript 6 箭头function :

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

你可以使用匿名函数

就像是

 session.sub('Hello', function(){marketEvents(your args);}); 

您可以创build一个调用marketEvent函数的函数。 没有必要使事情复杂化

 session.sub('Hello', function(args, kwargs) { marketEvent(args, kwargs, 'my custom data'); }); 

否则你可以这样做:

 var mrktEvent = function(customArgs) { return function(args, kwargs) { marketEvent(args, kwargs, customArgs) }; } session.sub('Hello', mrktEvent("customEvent"));