Foros del Web » Programando para Internet » Javascript »

ejecutar funcion recibida de parametro

Estas en el tema de ejecutar funcion recibida de parametro en el foro de Javascript en Foros del Web. Que tal, tengo el siguiente detalle, quiero ejecutar una funcion que es recibida como parametro, pero no la puedo ejecutar, seria algo asi: Código: function ...
  #1 (permalink)  
Antiguo 10/10/2012, 07:45
 
Fecha de Ingreso: octubre-2012
Mensajes: 5
Antigüedad: 11 años, 6 meses
Puntos: 1
Pregunta ejecutar funcion recibida de parametro

Que tal, tengo el siguiente detalle, quiero ejecutar una funcion que es recibida como parametro, pero no la puedo ejecutar, seria algo asi:

Código:
function fncGetOkDefault(result) {
    alert("entro a fncGetOk");
}
function fncGetErrorDefault(result) {
    alert("entro a fncGetError");
}
Ambas de arriba son funciones genericas

Código:
function Success(result) {
    alert("entro a Success");
}
function Fail(result) {
    alert("entro a Fail");
}
Ambas de arriba, son las que mando por parametro en la funcion de abajo para ejecutar


En este metodo valido si los parametros onSuccess y onFail no vienen nullos, si no vienen quisiera ejecturarlos, ya que solo poniendolos no funciona.

Código:
function saveEditSubsidiary() {
   CallPageMethod(url, $(this).serialize(), Success, Fail);
}

Código:
function CallPageMethod(url, data, onSuccess, onFail) {
    $.ajax({
        type: "POST",
        url: url,
        data: data,
        dataType: "json",
        success: function (result) {
            if (onSuccess != null)
                fncGetOkDefault
            else
                fncGetOk;
        },
        error: function (result) {
            if (onSuccess != null)
                Fail
            else
                fncGetErrorDefault;
        }
    });
}
Muchas gracias, Saludos ¡¡
  #2 (permalink)  
Antiguo 10/10/2012, 09:12
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: ejecutar funcion recibida de parametro

Buenos días que tal viendo tu código detenidamente

Primero

Código Javascript:
Ver original
  1. function Success(result) {
  2.     alert("entro a Success");
  3. }
  4. function Fail(result) {
  5.     alert("entro a Fail");
  6. }

Si lo que quieres es poder comparar la función en una condicional entonces debes usar return así debe quedar esta parte de tu código

Código Javascript:
Ver original
  1. function onSuccess(result) {
  2.     return result;
  3. }
  4. function onFail() {
  5.     alert('error en codigo');
  6. }

la funcion onFail no pongo como return porque no estas devolviendo nada y en todo caso que muestre un alerta.

Segundo

Código Javascript:
Ver original
  1. CallPageMethod(url, data, onSuccess, onFail) {
  2. {
  3.    ...
  4.    if (onSuccess != null)
  5.    ...
  6. }

No puedes comparar una función haciendo esto para esto debes usar los paréntesis para que digas que lo que se esta ejecutando es una función entonces esto debe quedar de la siguiente forma

Código Javascript:
Ver original
  1. if (onSuccess(result) != null)

Si lees bien estoy diciendo que la función reciba un parámetro y dependiendo el valor que me retorne valide que si no es null.

En este caso ahora si ya estas haciendo la correcta validación y comprobación de tus funciones

Al final tu código debe quedar así

Código Javascript:
Ver original
  1. function CallPageMethod(url, data, onSuccess, onFail) {
  2.     $.ajax({
  3.         type: "POST",
  4.         url: url,
  5.         data: data,
  6.         dataType: "json",
  7.         success: function (result) {
  8.             if (onSuccess(result) != null)
  9.                 fncGetOkDefault();
  10.             else
  11.                 fncGetOk();
  12.         },
  13.         error: function (result) {
  14.             if (onSuccess(result) != null)
  15.                 onFail();
  16.             else
  17.                 fncGetErrorDefault();
  18.         }
  19.     });
  20. }
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #3 (permalink)  
Antiguo 10/10/2012, 09:33
 
Fecha de Ingreso: octubre-2012
Mensajes: 5
Antigüedad: 11 años, 6 meses
Puntos: 1
Respuesta: ejecutar funcion recibida de parametro

Que tal Dradi7, gracias por tu respuesta,

Leyendo lo que puse, creo que esta algo confuso.

En si, lo que necesito es ejecutar una funciona que me llegue por parámetro y poderla ejecutar dentro de la función que ha llegado.

por decir, mi función a ejecturar se llama prueba:

Código:
function prueba(){
 alert('Ha llegado aqui');
}
en esta función mando a llamar la funcion llamarFunction con el parametro mi funcion prueba(), esto para poderla ejecturar dentro de llamarFunction().

Código:
function llamarFunction(){
 ejecutarFunction(prueba);
}
En esta funcion es donde no se como hacerle para que ejecute la funcion que le llegue como parametro:

Código:
function ejecutarFunction(fn){
}
He intentado de varias formas y no he puedo, puros errores.

Muchas gracias, Saludos ¡¡¡
  #4 (permalink)  
Antiguo 10/10/2012, 09:53
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: ejecutar funcion recibida de parametro

Pero en el ejemplo que te puse esta claro si deseas llamar a una funcion solamente le agregas los parentesis

Código Javascript:
Ver original
  1. function ejecutarFunction(fn){
  2.    fn();
  3. }
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #5 (permalink)  
Antiguo 10/10/2012, 14:20
 
Fecha de Ingreso: octubre-2012
Mensajes: 5
Antigüedad: 11 años, 6 meses
Puntos: 1
Respuesta: ejecutar funcion recibida de parametro

Excelente, ya funciono, muchas gracias.

Saludos ¡¡¡

Etiquetas: ejecturar, funciones
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:53.