Passa un argomento extra a una funzione di callback

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));