Básico para estos tiempos es que una funcion acepte como parámetro otra función la cual se ejecutará al finalizar una tarea.. lo que usualmente se conoce en javascript como callbacks..
He creado una función llamada x que recibe 2 parámetros, dentro de la función x hay una validación que determina cuando se ha enviado una función como parámetro que debe ejecutarse y cuando simplemente utilizar el segundo parámetro como otro valor de variable.
x = function(param, callback){ if ((callback) && (typeof callback === 'function')){ callback(param); } else console.log(param, callback); } // ejemplo utilizando 2 parametros de tipo string x('a', 'b'); // ejemplo utilizando 2 parametros, uno de tipo string y el otro siendo una función x('a', function(val){ alert(val); }); |
Dejo la prueba que funciona, igual y le pueden jugar un poco para probar que más se puede hacer:
http://jsfiddle.net/mfGmU/
Feliz aprendizaje!!
gracias por tu articulo.
La idea es dejar claros los conceptos antes de llegar al spaguetti, saludos 🙂
Hola, me podrias ayudar con lo siguiente?
Estoy usando el framework lungo. Defini la funcion “tieneClaseActivaProfesor” que devuelva true si tiene una clase activa y false en caso contrario.
Mi problema es como tener acceso desde la funcion “tieneClaseActivaProfesor” a lo que determine (true o false) la funcion guardada en la variable respuesta.
function tieneClaseActivaProfesor(){
var data={accion:’tieneClaseActivaProfesor’, idUsuario:sessionStorage.getItem(“idUsuario”)};
var respuesta = function (json){
//Aca proceso el json y determino si es true o false.
}
Lungo.Service.post(url, data, respuesta, “Json”);
};
Muchas gracias, Saludos.
Hola Marcelo, nunca he trabajado con lungo, aunque en algún momento leí e hice mis experimentos.. entonces yo digo que estás mal interpretando el concepto, ya que la variable respuesta no existirá, sino hasta que el método post haya sido invocado y éste haya respondido.
El tercer parámetro en Lungo.service.post es un callback y es asíncrono, lo que significa que esa línea se ejecutará, así como la siguiente hasta terminar su bloque de código y que en algún momento cuando el servidor responda, es cuando respuesta tendrá valor.
Saludos