教學課程:在 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 功能旗標中設定的篩選名稱。RandomFilter
建立 時註冊FeatureManager
。const fm = new FeatureManager(ffProvider, {customFilters: [new RandomFilter()]});
功能篩選作用中
當您執行應用程式時,組態提供者會從 Azure 應用程式組態載入 Beta 功能旗標。 isEnabled("Beta")
方法的結果將會列印至主控台。 由於 RandomFilter
是由 Beta 功能旗標實作及使用,因此結果將有 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
下一步
若要深入了解內建功能篩選,請繼續進行下列教學課程。