2011-01-15 16 views
6

llamando Ok lo que permite decir que tengo esta función:JavaScript devolución de llamada después de la función

function a(message) { 
alert(message); 
} 

Y yo quiero tener una devolución de llamada después de que se muestra la ventana de alerta. Algo como esto:

a("Hi.", function() {}); 

No estoy seguro de cómo tener una devolución de llamada dentro de la función que llamo así.

(Sólo estoy usando la ventana de alerta como ejemplo)

Gracias!

Respuesta

23

No hay sintaxis especial para las devoluciones de llamada, simplemente pase la función de devolución de llamada y llámelo dentro de su función.

function a(message, cb) { 
    console.log(message); // log to the console of recent Browsers 
    cb(); 
} 

a("Hi.", function() { 
    console.log("After hi..."); 
}); 

Salida:

Hi. 
After hi... 
5

Puede añadir una sentencia if para comprobar si se agrega una función de devolución de llamada o no. Entonces puede usar la función también sin una devolución de llamada.

function a(message, cb) { 
    alert(message); 
    if (typeof cb === "function") { 
     cb(); 
    } 
} 
0

Aquí está el código que alertará primero y luego segundo. Espero que esto sea lo que preguntaste.

function basic(callback) { 
    alert("first..."); 
    var a = "second..."; 
    callback(a); 
} 

basic(function (abc) { 
    alert(abc); 
}); 
Cuestiones relacionadas