En programación informática, una retrollamada o devolución de llamada (en inglés: callback), también denominada «posllamada» (o «call-after» en inglés),[1] es una función ejecutable «A» que se usa como argumento de otra función «B». De esta forma, al llamar a «B», esta ejecutará «A». Esta acción puede ser inmediata, lo que se denominará retrollamada sincronizada o puede producirse en un punto posterior, lo que se denominaría retrollamada asíncrona. Los lenguajes de programación son compatibles con distintos tipos de retrollamadas, en ocasiones implementándolas con subrutinas, expresión lambda o bloque de código.

Una retrollamada suele estar al mismo nivel del llamador original.

Esto permite desarrollar capas de abstracción de código genérico a bajo nivel que pueden ser llamadas desde una subrutina (o función) definida en una capa de mayor nivel. Por lo general, el código de alto nivel empieza con la llamada de alguna función, definida a bajo nivel, pasando a esta un puntero o un puntero inteligente de alguna otra función. Mientras la función de bajo nivel se ejecuta, esta puede ejecutar a su vez la función pasada como puntero para realizar alguna tarea. En otro escenario, las funciones de bajo nivel registran otras funciones pasadas como puntero inteligente, que luego pueden ser utilizadas para realizar retrollamadas asíncronas.

Se puede utilizar una retrollamada como aproximación simple al polimorfismo y a la programación genérica, donde el comportamiento de una función puede ser determinado dinámicamente por el paso punteros o punteros inteligentes a funciones de bajo nivel en las que, aunque realicen tareas diferentes, los argumentos sean compatibles entre sí. A esta técnica se le conoce como reutilización de código.

Oops something went wrong: