Rxjs ngx选择下拉列表如何包括去BounceTime?

Rxjs ngx选择下拉列表如何包括去BounceTime?,rxjs,angular6,ngx-select-dropdown,Rxjs,Angular6,Ngx Select Dropdown,我需要动态填充我的[options]数组,一旦用户完成键入,我需要进行API调用并获取我的选项列表 为了避免多个API调用,我想使用rxjsdebounceTime(1000) 有没有办法使用去BounceTime?或者还有其他推荐的选项吗?您可以使用缓冲区和api调用而不是ajax来使用此技巧 import { fromEvent, timer } from 'rxjs'; import { debounceTime, map, buffer, switchMap } from 'rxjs/o

我需要动态填充我的
[options]
数组,一旦用户完成键入,我需要进行API调用并获取我的选项列表

为了避免多个API调用,我想使用rxjs
debounceTime(1000)


有没有办法使用去BounceTime?或者还有其他推荐的选项吗?

您可以使用缓冲区和api调用而不是ajax来使用此技巧

import { fromEvent, timer } from 'rxjs';
import { debounceTime, map, buffer, switchMap } from 'rxjs/operators';

let input = document.getElementById('example');
let input$ = fromEvent(input, 'keyup');

let breakWhen$ = timer(1000);
let debounceBreak$ = input$.pipe(
debounceTime( 2000 )
);

let stream$ = input$.pipe(
  map( ev => ev.key),
  buffer(debounceBreak$),
  switchMap((allTypedKeys) => {
  // do ajax
  console.log('Everything that happened during 2 sec', allTypedKeys)
  return of('ajax based on ' + input.value);
});
);

stream$.subscribe((data) => console.log( 'values',data ));

正如Navruzbek提到的,“ngx mat选择搜索”可用于服务器端下拉搜索

但是,如果您想使用当前库并将debounceTime添加到其中,解决方法是使用主题。如

对我有效的解决方案:

searchTextChanged=新主题();
//在subscribvbe函数中进行服务器端调用
恩戈尼尼特(){
this.searchTextChanged.pipe(debounceTime(1000),distinctUntilChanged()).subscribe((值)=>this.outerValuedChanged(值));
}
addressSearchChanged(searchText:string){
如果(searchText.length>=3){
this.searchTextChanged.next(searchText);
}
}
//虚拟函数
outerValuedChanged(值:字符串){
console.log('value:',value);
返回“测试”;
}

谢谢您的回答。但我面临的问题不是输入字段,而是使用ngx选择下拉列表。我试图做一些与此非常类似的事情,但在我对其进行去抖动后,一旦更改事件,当我尝试映射输入时,它总是未定义的。使用ngx-mat-select-search()我认为这将解决您的问题这是一个极好的解决方案。这个库提供的服务器端搜索是完美的。但遗憾的是,由于它需要角度/材质,UI完全混乱,无法使用。因此,我不能认为这是正确的答案。但我会投这个票,肯定会帮助别人:)