Ho una funzione callWithMagic
che accetta una funzione di callback come parametro e la chiama con un argomento.
const callWithMagic = callback => { const magic = getMagic(); callback(magic); };
Ho anche una funzione processMagic
che accetta due argomenti: magic
e theAnswer
.
const processMagic = (magic, theAnswer) => { someOtherMagic(); };
Voglio passare la funzione processMagic
come argomento per callWithMagic
, ma voglio anche passare 42
come secondo parametro ( theAnswer
) per processMagic
. Come lo posso fare?
callWithMagic();
Basta creare un callback wrapper:
callWithMagic(function(magic) { return processMagic(magic, 42); });
O utilizzando le funzioni freccia ECMAScript 6:
callWithMagic(magic => processMagic(magic, 42));
Potresti usare una funzione anonima
qualcosa di simile a
session.sub('Hello', function(){marketEvents(your args);});
È ansible creare una funzione che chiama la funzione marketEvent
. Non c’è bisogno di complicare le cose
session.sub('Hello', function(args, kwargs) { marketEvent(args, kwargs, 'my custom data'); });
altrimenti puoi farlo:
var mrktEvent = function(customArgs) { return function(args, kwargs) { marketEvent(args, kwargs, customArgs) }; } session.sub('Hello', mrktEvent("customEvent"));
È ansible associare l’object argomento alla funzione di callback:
var varObject = {var1: "findButton", var2: true}; function cbFunc() { console.log(this.var1+ ":" + this.var2); } //Example callback datatable.ajax.reload(cbFunc.bind(varObject));