【问题标题】:Angular 6 throttleTime doesnt exist in Rx JsRxjs 中不存在 Angular 6 throttleTime
【发布时间】:2018-09-02 12:36:31
【问题描述】:

我正在使用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));

我在 Angular 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';

谁能帮我在哪里可以找到最新版本的确切文档。

谢谢

【问题讨论】:

    标签: javascript angular rxjs angular6


    【解决方案1】:

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

    import { fromEvent } from 'rxjs';
    import { throttleTime } from 'rxjs/operators';
    
    subscription = fromEvent(document, 'click')
                   .pipe(throttleTime(1000))
                   .subscribe(x => console.log(x));
    

    您可以在此处的官方文档中找到它:

    fromEvent | throttleTime

    还要确保unsubscribe 来自subscription 以避免任何内存泄漏。一般是在ngOnDestroy

    【讨论】:

    • @Siddarth 正如我所说的“typeof Observable”类型上不存在属性“fromEvent”
    • 我无法从 observable 访问 fromEvent。只有直接访问 fromevent 才有效
    • @Siddharth.i 在提问之前我已经厌倦了这个我的问题是 src/app/app.component.ts(35,29) 中的错误:错误 TS2339:类型上不存在属性“fromEvent” 'typeof Observable'。
    【解决方案2】:

    感谢 Siddharth Ajmera 提供使用管道的线索。 在最新版本的 rx js 中,我们可以这样做

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-04-11
      • 2018-10-17
      • 1970-01-01
      • 2019-02-21
      • 1970-01-01
      • 2019-01-25
      相关资源
      最近更新 更多