触发观察到几个毫秒
问题描述:
我用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---|';
这是它,谢谢! –