Rx Js中不存在角度6节流时间

时间:2018-09-02 12:36:32

标签: javascript angular rxjs angular6

我正在使用angular/cli": "~6.1.5rxjs": "^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)添加到from事件中,则会抛出错误

  

类型“可观察”的属性“ throttleTime”不存在

'`。

如果我尝试添加Observable.fromEvent,则该方法不存在

我已将Rx js导入为

import {Observable, fromEvent, from, of} from 'rxjs';
import {throttleTime} from 'rxjs/operators';

任何人都可以帮助我在哪里找到最新版本的确切文档。

谢谢

2 个答案:

答案 0 :(得分:6)

它可以像这样通过管道传递到Observable:

import { fromEvent } from 'rxjs';
import { throttleTime } from 'rxjs/operators';

subscription = fromEvent(document, 'click')
               .pipe(throttleTime(1000))
               .subscribe(x => console.log(x));

您可以在以下官方文档中找到它:

fromEvent | throttleTime

还要确保从unsubscribesubscription,以避免任何内存泄漏。通常,这是在ngOnDestroy

中完成的

答案 1 :(得分:0)

感谢Siddharth Ajmera提供了使用烟斗的线索。 在最新版本的rx js中,我们可以执行以下操作

 fromEvent(this.hoverSection, 'click')
      .pipe(throttleTime(1000))
      .subscribe((event) => console.log('clicked'));