Поделиться через


Включение условных функций с помощью пользовательского фильтра в приложении JavaScript

Флаги компонентов могут использовать фильтры компонентов для условного включения функций. Дополнительные сведения о фильтрах функций см. в статье "Включение условных функций" с помощью фильтров компонентов.

Пример, используемый в этом руководстве, основан на приложении Node.js, представленном в кратком руководстве по управлению функциями. Прежде чем продолжить, выполните краткое руководство по созданию приложения Node.js с флагом бета-функции . После завершения необходимо добавить пользовательский фильтр компонентов в флаг бета-функции в хранилище Конфигурация приложений.

Из этой статьи вы узнаете, как реализовать пользовательский фильтр функций и использовать фильтр компонентов для условного включения функций. Мы используем консольное приложение Node.js в качестве примера, но вы также можете использовать пользовательский фильтр компонентов в других приложениях JavaScript.

Необходимые компоненты

Реализация настраиваемого фильтра компонентов

Вы добавили пользовательский фильтр функций с именем Random с параметром "Процент" для флага бета-функции в предварительных требованиях. Затем вы реализуете фильтр компонентов, чтобы включить флаг бета-функции на основе вероятности, определенной параметром Percentage .

  1. Откройте файл app.js и добавьте RandomFilter следующий код.

    class RandomFilter {
        name = "Random";
        evaluate(context) {
            const percentage = context.parameters.Percentage;
            const randomNumber = Math.random() * 100;
            return randomNumber <= percentage;
        }
    }
    

    Вы добавили RandomFilter класс с одним именем метода evaluate, который вызывается при оценке флага компонента. В evaluateфильтре функций флаг компонента включается возвращаемый trueфлаг компонента.

    В Конфигурация приложений Azure задано имя RandomFilter фильтра, которое соответствует имени фильтра, заданному в флаге бета-функции.

  2. RandomFilter Зарегистрируйтесь при создании FeatureManager.

    const fm = new FeatureManager(ffProvider, {customFilters: [new RandomFilter()]});
    

Фильтр компонентов в действии

При запуске приложения поставщик конфигурации загрузит флаг бета-функции из Конфигурация приложений Azure. Результат isEnabled("Beta") метода будет напечатан в консоли. RandomFilter По мере реализации и использования флагом бета-функции результат будет составлять True 50 процентов времени, а False остальные 50 процентов времени.

При запуске приложения показано, что флаг бета-функции иногда включен, а иногда и нет.

Beta is enabled: true
Beta is enabled: false
Beta is enabled: false
Beta is enabled: true
Beta is enabled: true
Beta is enabled: false
Beta is enabled: false
Beta is enabled: false
Beta is enabled: true
Beta is enabled: true

Следующие шаги

Дополнительные сведения о встроенных фильтрах функций см. в следующих документах.