Jak zwrócić odpowiedź z połączenia asynchronicznego?

Mam funkcjęfoo który tworzy żądanie Ajax. Jak mogę zwrócić odpowiedź zfoo?

Próbowałem zwrócić wartość zsuccess wywołanie zwrotne, a także przypisanie odpowiedzi do zmiennej lokalnej wewnątrz funkcji i zwrócenie tej, ale żaden z tych sposobów nie zwraca odpowiedzi.

function foo() {
    var result;

    $.ajax({
        url: '...',
        success: function(response) {
            result = response;
            // return response; // <- I tried that one as well
        }
    });

    return result;
}

var result = foo(); // It always ends up being `undefined`.

questionAnswers(30)

yourAnswerToTheQuestion