Что делает эта функция ответа javascript?

Я видел этот код в другом сообщении SO: jQuery UI Autocomplete с ASP MVC

    $("#CustomerID").autocomplete({
        source: function(request, response) {
            $.ajax({
                type: "POST",
                url: "/customer/search",
                dataType: "json",
                data: {
                    term: request.term
                },
                error: function(xhr, textStatus, errorThrown) {
                    alert('Error: ' + xhr.responseText);
                },
                success: function(data) {
                    response($.map(data, function(c) {
                        return {
                            label: c.Company,
                            value: c.ID
                        }
                    }));
                }
            });
        },
        minLength: 2,
        select: function(event, ui) {
            alert('Select');
        }
    });

Я понимаю все, кроме функции успеха. Я знаю, что карта берет массив и сопоставляет каждое значение с новым объектом, обладающим свойством label и value, и возвращает новый массив, но я не уверен, что делает ответ().

Ответы

Ответ 1

Этот объект, называемый response, является функцией обратного вызова, переданной функции, помеченной источником методом автозаполнения.

см. Автозаполнение JQuery UI

Третий вариант, обратный вызов, обеспечивает максимальную гибкость и может использоваться для подключения любого источника данных к автозаполнению. Обратный вызов получает два аргумента:

Объект запроса с единственным свойством, называемым "term", который ссылается на значение, находящееся в настоящее время в текстовом вводе. Например, когда пользователь вводил "новое летнее" в поле города, термин "Автозаполнение" будет равен "новый год".

A ответ, который ожидает, что один аргумент будет содержать данные, предлагаемые пользователю. Эти данные должны быть отфильтрованы на основе предоставленного термина и могут быть в любом из описанных выше форматов для простых локальных данных (String-Array или Object-Array с меткой/значением/оба свойства). Это важно при предоставлении настраиваемого обратного вызова источника для обработки ошибок во время запроса. Вы всегда должны вызывать обратный вызов ответа, даже если вы столкнулись с ошибкой. Это гарантирует, что виджет всегда имеет правильное состояние.

Ответ 2

Кажется, это настраиваемая функция, которую имеет исходный код кодера. Насколько мне известно, это не неотъемлемая функция jQuery.