- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当用户更改输入字段时,我当前正在保存值。我不想在每次输入新字符时都保存该值,因此我使用 rxjs debounceTime 在 3000 毫秒(只是一个示例)没有更改后进行保存。
this.subscription.add(this.form.controls.inputControl.valueChanges
.pipe(debounceTime(3000))
.subscribe(value => {
// execute HTTP call with value
}));
ngOnDestroy(): void {
this.subscription.unsubscribe();
}
最佳答案
const destroyed = new Subject();
const isTimerActive = new BehaviorSubject(false);
const stop$ = combineLatest(destroyed, isTimerActive)
.pipe(
filter(([isDestroyed, isTimerActive]) => isDestroyed && !isTimerActive)
);
src$.pipe(
debounce(
() => (
// Now if the component is destroyed, it will not unsubscribe from this stream
isTimerActive.next(true),
timer(/* ... */)
)
),
switchMap(v => makeRequest(v)),
// If the component is destroyed, then after sending this
// the stream will be unsubscribed
tap(() => isTimerActive.next(false)),
takeUntil(stop$)
).subscribe(/* ... */)
ngOnDestroy () {
this.destroyed.next(true);
this.destroyed.complete();
}
isTimerActive.next(false)
)。
destroyed
是
true
我们立即做
isTimerActive.next(false)
,取消订阅会发生
同步 ,这意味着您将无法使用该值执行任何其他操作。
关于angular - 如何在 OnDestroy 中完成事件的 debounceTime,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61813792/
让我难过的愚蠢问题。我想根据流中的数据提供不同的 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
我是一名优秀的程序员,十分优秀!