在 JavaScript 应用程序中启用使用自定义筛选器的条件功能
功能标志可以使用功能筛选器有条件地启用功能。 若要了解有关功能筛选器的详细信息,请参阅通过功能筛选器启用条件功能。
本指南中使用的示例基于功能管理快速入门中介绍的 Node.js 应用程序。 在继续学习之前,请完成快速入门,创建具有 Beta 功能标志的 Node.js 应用程序。 完成后,必须将自定义功能筛选器添加到你的应用程序配置存储中的 Beta 功能标志。
本文介绍了如何实现自定义功能筛选器,并使用功能筛选器有条件地启用功能。 我们使用 Node.js 控制台应用作为示例,但你也可以在其他 JavaScript 应用程序中使用自定义功能筛选器。
先决条件
实现自定义功能筛选器
你已在先决条件中添加了一个名为 Random 的自定义功能筛选器,其中包含你的 Beta 功能标志的 Percentage 参数。 接下来,实现功能筛选器,根据 Percentage 参数定义的几率启用 Beta 功能标志。
打开 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
来启用功能标志。你将
RandomFilter
的名称设置为“Random”,这与你在 Azure 应用程序配置的 Beta 功能标志中设置的筛选器名称匹配。在创建
FeatureManager
时注册RandomFilter
。const fm = new FeatureManager(ffProvider, {customFilters: [new RandomFilter()]});
功能筛选器在使用中
运行应用程序时,配置提供程序将从 Azure 应用配置加载 Beta 功能标志。 isEnabled("Beta")
方法的结果将输出到控制台。 由于 Beta 功能标志实现并使用 RandomFilter
,因此结果将在 50% 的情况下为 True
,在另外 50% 的情况下为 False
。
运行应用程序时,将显示 Beta 功能标志有时启用,有时不启用。
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
后续步骤
若要详细了解内置功能筛选器,请继续学习以下文档。