パラメータとしてコールバック関数を受け取り、1つの引数で呼び出す関数callWithMagic
があります。
const callWithMagic = callback => {
const magic = getMagic();
callback(magic);
};
また、processMagic
とmagic
の2つの引数を取る関数theAnswer
もあります。
const processMagic = (magic, theAnswer) => {
someOtherMagic();
};
関数processMagic
を引数としてcallWithMagic
に渡したいのですが、42
をtheAnswer
への2番目のパラメーター(processMagic
)として。どうやってやるの?
callWithMagic(<what should I put here?>);
ラッパーコールバックを作成するだけです。
callWithMagic(function(magic) {
return processMagic(magic, 42);
});
または、ECMAScript 6 矢印関数 を使用して:
callWithMagic(magic => processMagic(magic, 42));
無名関数を使用できます
何かのようなもの
session.sub('Hello', function(){marketEvents(your args);});
引数オブジェクトをコールバック関数にバインドできます。
var varObject = {var1: "findButton", var2: true};
function cbFunc() {
console.log(this.var1+ ":" + this.var2);
}
//Example callback
datatable.ajax.reload(cbFunc.bind(varObject));
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"));