- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
是否可以将 debounceTime 值设置为根据条件更改的值?我有一个行为主题设置(如果我做错了这部分,请告诉我):
this.searchSubject.asObservable().debounceTime(1000).subscribe(x => this.emitFilters())
我希望去抖动时间根据某些过滤条件而有所不同,但是当我尝试在其中添加一个函数时,VS Code 提示它无效。
我也看了一下debounce,好像是取了一个类型的变量,但是从文档上看,我好像搞不明白(根据VS Code,我扔进去的函数返回了错误的类型,甚至尽管我是从记录的代码中复制的)。如果它有所作为,我将在 Angular 2 中完成所有这些工作。
最佳答案
您在哪里看到建议 .debounceTime 接受函数的文档?有据可查here具有以下签名:
public debounceTime(dueTime: number, scheduler: Scheduler): Observable
您要找的方法是debounce其中,根据文档:
Emits a value from the source Observable only after a particular time span determined by another Observable has passed without another source emission.
It's like debounceTime, but the time span of emission silence is determined by a second Observable.
这是它的签名:
public debounce(durationSelector: function(value: T): Observable | Promise): Observable
因此,要完成您所追求的行为,您所要做的就是设置另一个 Observable,它将提供去抖动的时间间隔。
您可以使用另一个 Subject 来执行此操作,您可以根据应用程序逻辑调用 .next() 来提供新的等待时间。
let debounceSubject = new Subject<number>();
let debounceObservable$ = debounceSubject.asObservable();
// Somewhere else in code you'll do debounceSubject.next(1000); for example
最后你会像这样设置你的新去抖:
this.searchSubject.asObservable()
.debounce(() => debounceObservable$).subscribe(x => this.emitFilters())
可以找到更多使用 .debounce 的例子 here (学习 rxjs 的好网站)包括 jsBin 和 jsFiddle 的工作示例。
关于angular - 基于条件的可变 debounceTime,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42070554/
让我难过的愚蠢问题。我想根据流中的数据提供不同的 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
我是一名优秀的程序员,十分优秀!