我正在使用angular/cli": "~6.1.5
和rxjs": "^6.0.0
因为我是Angular 6的新手,我开始从官方文档中学习
http://reactivex.io/rxjs/class/es6/Observable.js~Observable.html
代码如下
var clicks = Rx.Observable.fromEvent(document, 'click');
var result = clicks.throttleTime(1000);
result.subscribe(x => console.log(x));
我在角度6中尝试过相同的代码
fromEvent(mybuttonId, 'click')
.subscribe((event) => console.log('clicked'));
但是,如果我从事件添加.throttleTime(1000),那么它将抛出错误
属性'throttleTime'在类型'Observable上不存在
'`.
如果我尝试添加Observable.fromEvent,那么该方法不存在
我已经导入了Rx js
import {Observable, fromEvent, from, of} from 'rxjs';
import {throttleTime} from 'rxjs/operators';
任何人都可以帮助我找到最新版本的确切文档。
谢谢
它可以通过管道连接到这样的Observable:
import { fromEvent } from 'rxjs';
import { throttleTime } from 'rxjs/operators';
subscription = fromEvent(document, 'click')
.pipe(throttleTime(1000))
.subscribe(x => console.log(x));
您可以在官方文档中找到它:
还要确保unsubscribe
中的subscription
以避免任何内存泄漏。一般来说,这是在ngOnDestroy
完成的
感谢Siddharth Ajmera提供使用管道的线索。在最新版本的rx js中,我们可以执行以下操作
fromEvent(this.hoverSection, 'click')
.pipe(throttleTime(1000))
.subscribe((event) => console.log('clicked'));