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