valor una retornar pasar parametros otra funciones funcion entre desde dentro argumentos anonimas javascript function parameters callback

javascript - retornar - Pasar un argumento adicional a una función de devolución de llamada



pasar variables entre funciones javascript (4)

Podría usar una función anónima

algo como

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

Tengo una función callWithMagic que toma una función de devolución de llamada como parámetro y la llama con un argumento.

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

También tengo una función processMagic que toma dos argumentos: magic y theAnswer .

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

Quiero pasar la función processMagic como argumento para callWithMagic , pero también quiero pasar 42 como el segundo parámetro ( theAnswer ) para processMagic . ¿Cómo puedo hacer eso?

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


Puede crear una función que llame a la función marketEvent . No hay necesidad de complicar las cosas

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

de lo contrario, puedes hacer esto:

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


Puede vincular el objeto de argumento a la función de devolución de llamada:

var varObject = {var1: "findButton", var2: true}; function cbFunc() { console.log(this.var1+ ":" + this.var2); } //Example callback datatable.ajax.reload(cbFunc.bind(varObject));


Simplemente crea una devolución de llamada envoltura:

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

O usando las funciones de flecha de ECMAScript 6:

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