我想知道是否有可能使用rxjs以编程方式使用TypeScript实现以下指令:
致电服务。但仅当文本字段中的最后一个输入发生在n毫秒或更长时间之前。
e.g。
12:30.450> 'K'已进入。
12:30.500> 'E'进入了。差距是50毫秒。不采取任何行动。
12:30.550> 'Y'进入了。差距是50毫秒。不采取任何行动。
12:31.050>最近500毫秒没有输入。致电服务。
我想过使用这个结构:
return Observable.timer(500).switchMap(() => {
return this.compare().map(duplication => {
return (duplication === true) ? { duplicateName: true } : null;
});
});
但它只提供延迟。完全考虑给定的最小间隙时间,它不会忽略该调用。
有没有人知道在这种情况下如何处理松散的目标?
答案 0 :(得分:2)
听起来您想使用DebounceTime,请参阅https://www.learnrxjs.io/operators/filtering/debouncetime.html
您可以使用debounceTime过滤器为自己留出时间间隔,以便在触发observable触发下一个值之前允许更多更改。