¿Cómo devuelvo la respuesta de una llamada asíncrona?

Tengo una funciónfoo lo que hace una solicitud de Ajax. ¿Cómo puedo devolver la respuesta defoo?

Traté de devolver el valor de lasuccess la devolución de llamada, además de asignar la respuesta a una variable local dentro de la función y devolverla, pero ninguna de esas formas devuelve la respuesta.

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`.

Respuestas a la pregunta(30)

Su respuesta a la pregunta