我有一個名為 filteredUserNames 的列表,其中包含很多用戶。每次我更改表單上的值時,它都會啟動一個新的數據過濾器。我知道要延遲時間以便不是每個角色都會觸發我需要使用去抖動的新過濾器,但我不確定在哪里添加它。它應該在價值變化訂閱中嗎?還有什么是正確的實施方法?我有searchString = new BehaviorSubject("");searchString$ = this.searchString.asObservable();在構造函數中this.myForm = this.fb.group({ searchString: [""],});this.myForm.controls.searchString.valueChanges.subscribe((val) => {// SHOULD THE DEBOUNCE GO HERE ?? // this.searchString.next(val); }在 ngOnInitthis.searchString$.subscribe((searchTerm) => { console.log(this.userNames); if (this.userNames !== undefined) { this.filteredUserNames = this.userNames.filter( (userName) => userName.searchTerms .toLowerCase() .indexOf(searchTerm.toLowerCase()) !== -1 ); }; });
形式的 ValueChanges 中的 Angular Debounce
隔江千里
2023-05-19 15:13:05