触发观察到几个毫秒

触发观察到几个毫秒

问题描述:

我用angular4和RxJS触发观察到几个毫秒

基本假设是:当用户在文本框输入一个字母我引发一些的getData()函数(keyup事件),得到数据和显示在文本区域下面

我不想触发函数,并在用户输入字母后立即获取数据,但让他输入完整的短语,等待例如300毫秒,最后触发函数,得到数据和显示

所以我想实现的流程是simila R键是:

myService.getDataAsObservable 
.whatToDoHere? 
.subscribe(data => ...handle and display the data...); 

一个解决方案就是把它们包装成的setTimeout(),但它会更好流利做在一个可观测的风格

我曾经见过该解决方案问题,但无法再找到它..

谢谢!

您将需要使用debounce操作:

myService.getDataAsObservable 
.debounce(300) 
.subscribe(data => ...handle and display the data...); 

这里是视觉解释:

var someObservable = getDataAsObservable('---x---x---x---|'); 
var someDuration = 300; //        '--------|'; 
var expected =   '---------------------------------------x---|'; 
+0

这是它,谢谢! –