Establecer un retraso en la llamada ajax

Estoy tratando de agregar un pequeño retraso (2 segundos) entre el ícono del cargador y el éxito con los datos como html.

Lo que intenté usar es setTimeout y puse un número de retraso. Esto no funciona, así que esperaba que me mostraras cuál es la forma correcta.

Mi código ajax:

<script type="text/javascript">

$(function () {

    var delay = 2000;

    var res = {
        loader: $("<div />", { class: "loader" })
    };

    $('#search').on('click', function () {
        $.ajax({
            type: 'GET',
            url: "@Url.Action("Find", "Hotel")",
            datatype: "html",
            beforeSend: function () {
                $("#group-panel-ajax").append(res.loader);
                setTimeout(delay);
            },

            success: function (data) {
                $("#group-panel-ajax").find(res.loader).remove();
                $('#group-panel-ajax').html($(data).find("#group-panel-ajax"));
            }
        });
        return false;
    });
});

</script>

En este momento funciona muy rápido. Espero que alguien pueda ayudar.

Respuestas a la pregunta(4)

Su respuesta a la pregunta