Todo lo que necesito hacer es ejecutar una función de devolución de llamada cuando finalice la ejecución de mi función actual.
function LoadData()
{
alert('The data has been loaded');
//Call my callback with parameters. For example,
//callback(loadedData , currentObject);
}
Un consumidor para esta función debería ser así:
object.LoadData(success);
function success(loadedData , currentObject)
{
//Todo: some action here
}
¿Cómo implemento esto?
javascript
Amgad Fahmi
fuente
fuente

object.LoadData(success)la llamada debe ser posterior a lafunction successdefinición. De lo contrario, recibirá un error que le indicará que la función no está definida.Respuestas:
En realidad, su código funcionará tal cual, simplemente declare su devolución de llamada como argumento y puede llamarlo directamente usando el nombre del argumento.
Los basicos
Eso llamará
doSomething, lo que llamaráfoo, lo que alertará "las cosas van aquí".Tenga en cuenta que es muy importante pasar la referencia de función (
foo), en lugar de llamar a la función y pasar su resultado (foo()). En su pregunta, lo hace correctamente, pero vale la pena señalarlo porque es un error común.Cosas más avanzadas
A veces desea llamar a la devolución de llamada para que vea un valor específico para
this. Puede hacerlo fácilmente con lacallfunción de JavaScript :También puedes pasar argumentos:
A veces es útil pasar los argumentos que desea dar la devolución de llamada como una matriz, en lugar de individualmente. Puedes usar
applypara hacer eso:fuente
setTimeout(). La respuesta es envolver la devolución de llamada en un cierre:doSomething(function(){foo('this','should','work')})Es una buena práctica asegurarse de que la devolución de llamada sea una función real antes de intentar ejecutarla:
fuente
if(typeof callback == "function")Tendrá el mismo resultado.callback &&...Mi 2 centavo Lo mismo pero diferente...
fuente
fuente
==============================================
==============================================
El resultado es:
fuente
Si desea ejecutar una función cuando se hace algo. Una de las buenas soluciones es escuchar eventos. Por ejemplo, implementaré a
Dispatcher, unaDispatcherEventclase con ES6, luego:Despachador:
DispatcherEvent:
¡Feliz codificación!
p / s: falta mi código para manejar algunas excepciones de error
fuente
fuente
Al llamar a la función de devolución de llamada, podríamos usarla como a continuación:
consumingFunction(callbackFunctionName)Ejemplo:
Este es el Codepend con el ejemplo completo.
fuente
Algunas de las respuestas, aunque correctas, pueden ser un poco difíciles de entender. Aquí hay un ejemplo en términos simples:
La devolución de llamada significa que "Jake" siempre se agrega a los usuarios antes de mostrar la lista de usuarios con
console.log.Fuente (YouTube)
fuente
Tratar:
Las funciones son de primera clase en JavaScript ; puedes pasarlos por ahí.
fuente