角度:检测用户何时停止输入

问题描述

我有一个文本框作为输入元素,并且想知道用户何时停止键入以进行REST调用。我阅读了一些在keyup上使用setTimeout的文章;但是,然后用户在一定时间内停止了键入操作,我看到API被调用了很多次(取决于键入内容的长度)。是否还有其他方法可以检测到用户已停止键入以进行API调用?

解决方法

好的,这肯定会帮助您,并且非常易于使用:-

debounceTime

debounceTime将源Observable发出的值延迟为您指定为其参数的时间(以毫秒为单位)。

-index.ts-

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

// elem ref
const searchBox = document.getElementById('search');

// streams
const keyup$ = fromEvent(searchBox,'keyup')

// wait .5s between keyups to emit current value
keyup$.pipe(
  map((i: any) => i.currentTarget.value),debounceTime(500)
)
.subscribe((value) => {
  console.log('value is',value);
});

-index.html-

<input type="text" id="search" />

现在在订阅正文中,您可以进行api调用。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...