将一个额外的parameter passing给一个callback函数
我有一个函数callWithMagic
,它将一个callback函数作为参数,并用一个参数来调用它。
const callWithMagic = callback => { const magic = getMagic(); callback(magic); };
我也有一个函数processMagic
,它有两个参数: magic
和theAnswer
。
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"));