- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想使用 debounceTime
在按键 300 毫秒后向服务器发送请求。
我使用这个代码:
GetUsers(): void {
let value = document.getElementById('search-box');
this.cdRef.detectChanges();
if (this.subscription) {
this.subscription.unsubscribe();
}
value = this.searchValue.toString();
const typeahead = fromEvent(value, 'input').pipe(
map((e: KeyboardEvent) => (e.target as HTMLInputElement).value),
filter(text => text.length > 2),
debounceTime(10),
distinctUntilChanged(),
x => {
if (value.startsWith('@')) {
this.searchTitle = 'GENERAL.USER_NAME';
const val = value.slice(1);
if (val.length > 0) {
this.getWithUserName(val, this.page);
}
} else if (value.startsWith('+9')) {
this.searchTitle = 'GENERAL.PHONE_NUMBER';
this.GetWithPhoneNumber(this.searchValue, this.page);
} else if (!value.startsWith('@') && !value.startsWith('+9')) {
this.searchTitle = 'GENERAL.NAME';
this.GetWithDisplayName(value, this.page);
}
}
);
this.cdRef.detectChanges();
}
这是用于向服务器发送请求的代码HttpClient
:
getWithUserName(value: string, page: number): void {
this.loading = true;
this.cdRef.detectChanges();
this.subscription = this.userPublicService
.getUserByUserName(value, page, this.appConfig.dropdownPageSize)
.pipe(debounceTime(30000),
distinctUntilChanged())
.subscribe(data => {
this.users = data['records'];
this.totalCount = data['totalCount'];
this.cdRef.detectChanges();
this.loading = false;
this.ValidateshowBtn();
});
if (this.userId > 0) {
this.selectedUserById(this.userId);
}
}
但是这段代码对我不起作用。
有什么问题吗?我该如何解决这个问题?
它告诉我这个错误:
ERROR in src/app/shared/components/user-mutli-select-search/user-mutli-select-search.component.ts(117,4): error TS2345: Argument of type '(x: Observable) => void' is not assignable to parameter of type 'OperatorFunction'. Type 'void' is not assignable to type 'Observable<{}>'.
最佳答案
打字 fromEvent
如fromEvent<KeyboardEvent>
为我解决了这个问题。
关于javascript - 在 Angular 中使用 debounceTime,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60274631/
让我难过的愚蠢问题。我想根据流中的数据提供不同的 debounceTime。我有: const fakeData = [{number: 1}, {number: 2}, {number: 3}];
我正在尝试使用 debounceTime 方法发送此请求,而不是向服务器发送多次。但不工作。立即调用此服务。 在拖放事件中,我想使用 saveWidgetsPosition 函数保存位置。 dro
我需要为 Angular 中的响应式(Reactive)表单类型编写异步验证器。我已经通过 promise 实现了它。但问题是验证器每次击键都会触发它,每次击键都会触发服务器。为了实现去抖,我已经为
我正在使用 debounceTime 在下拉列表中获取列表,到目前为止一切正常我输入了三个字符并触发 api 调用返回给我一个列表,但问题是当我从 Control 的 valueChanges 列表中
我有一个从 FormBuilder 构建的控件。我想为每个 keyup 设置一个 debounceTime,但不是在用户失去控件焦点时设置。 this._control.valueChanges
是否可以将 debounceTime 值设置为根据条件更改的值?我有一个行为主题设置(如果我做错了这部分,请告诉我): this.searchSubject.asObservable().deboun
我有一个带有一个字段的响应式(Reactive)表单,当用户停止输入时,我想将值打印到控制台。为此,当字段中的值更改时,我使用了 debounceTime()。我读了几个关于使用 debounceTi
我正在尝试为 Angular 中的函数编写单元测试应用程序 debounceTime ( rxjs )。并使用 fakeAsync用于异步测试。 看起来在测试中 debounceTime即使我没有设置
employeeChanged: Subject = new Subject(); setInterval(() => { this.employeeChanged.next(1);
我对元素输入事件有一个简单的去抖动,如下所示: Observable .fromEvent(this.elInput.nativeElement, 'input') .
我正在尝试在 Angular 5 函数上使用 debounceTime,但我不知道如何使用它。当我构建搜索函数时,我可以使用它,因为它绑定(bind)到对该输入值所做的更改,如下所示: this.se
在 Angular 4 项目中,我有一个函数(我们称之为 reload()),它可以被其他函数调用(我们称之为 A() )并且B()) 随时。我想对 reload() 的执行进行反跳,直到从最后一次调
遵循 rxjs 和不同指南页面的文档,并不能解决我的 debounceTime 不起作用的问题。 function getValue() { return new rxjs.Observable(
有一段代码是这样的: const hoverQueue$ = new Rx.Subject() .debounceTime(1000) .subscribe(() => {
我正在使用 Rxjs 的 debounceTime()。这意味着它将在我传递给函数的几毫秒后进行订阅。因此,我通过给出不同的时间值在每个文档点击上调用 debounceTime() 。第一次我给 1
TLDR;我想使用 debounceTime 仅在 300 毫秒没有被调用时才执行该函数。同时,如果这个过程需要很长时间,我也希望能够每 1 分钟触发一次该功能。否则,该函数只会在流程结束时触发。 基
如果没有其他事件发生,是否可以延迟运行序列,并立即返回所有值? 我需要某种debounceTime 函数,但它会返回所有值。 最佳答案 如果我理解正确,您需要一个运算符来缓冲事件,直到在一段时间内没有
当用户更改输入字段时,我当前正在保存值。我不想在每次输入新字符时都保存该值,因此我使用 rxjs debounceTime 在 3000 毫秒(只是一个示例)没有更改后进行保存。 this.subsc
我想使用 debounceTime 在按键 300 毫秒后向服务器发送请求。 我使用这个代码: GetUsers(): void { let value = document.getEleme
我创建了一个 Angular 指令,该指令应用于输入并以一些延迟(用于搜索)发出其值。 这个代码如下 @Directive({ selector: '[search-field]' }) ex
我是一名优秀的程序员,十分优秀!