Wywołanie zwrotne to termin używany w programowaniu komputerowym do opisania fragmentu kodu przekazywanego jako argument do innego kodu. Nazywa się ją także „podprogramem” lub „funkcją wywołania zwrotnego”. Kod przekazany jako argument jest zwykle wykonywany po zakończeniu wykonywania wywoływanej funkcji. Wywołania zwrotne są najczęściej używane w programowaniu w celu powiadomienia programu o zakończeniu zadania lub wykonania określonego zestawu operacji po określonym zdarzeniu.
W obiektowych językach programowania wywołanie zwrotne to zazwyczaj obiekt lub metoda przekazywana do obiektu wyższego poziomu w celu użycia go jako sygnału powiadomienia. Ten sygnał powiadomienia może zostać wykorzystany do powiadomienia programu o wystąpieniu określonego zdarzenia. Typowym przykładem jest to, że gdy użytkownik kliknie przycisk, warstwa interfejsu użytkownika (UI) aplikacji użyje wywołania zwrotnego, aby powiadomić kod zaplecza o kliknięciu przycisku.
W programowaniu funkcjonalnym wywołanie zwrotne to funkcja przekazywana jako parametr do innej funkcji. Kiedy wykonywana jest funkcja odbierająca, funkcja wywołania zwrotnego jest przekazywana do niej jako argument, a następnie wykonywana. Na przykład funkcja mapy może zostać użyta do iteracji po liście i wykonania określonej akcji na każdym elemencie. W tym przypadku akcja, która ma zostać wykonana na każdym elemencie, przekazywana jest jako wywołanie zwrotne w funkcji map.
Wywołania zwrotne są ważną funkcją wielu języków programowania i można ich używać do tworzenia złożonych i wydajnych aplikacji. Wraz ze wzrostem wykorzystania JavaScript w tworzeniu stron internetowych, wywołania zwrotne stały się bardzo popularnym sposobem obsługi kodu asynchronicznego. Wywołania zwrotne są również używane w wielu innych językach, w tym w C, Java, Python, Ruby i Go.
Ogólnie rzecz biorąc, wywołania zwrotne są podstawową częścią programowania i są integralną częścią wielu programów. Chociaż wywołań zwrotnych można używać do tworzenia złożonych aplikacji, należy się z nimi obchodzić ostrożnie, ponieważ często mogą powodować błędy w programie.